وضع USB التكوين فشل
-
22-08-2019 - |
سؤال
أنا أحاول التحدث إلى جهاز USB باستخدام libusb, ولكن أشعر أنني التعثر في المرحلة الأولى من السباق.أنا أعرف بالضبط ما النهاية أريد التحدث ، وما إلى ذلك ، ولكن لا أستطيع حتى الحصول على ذلك الآن.لدي في جوهرها:
usb_device *dev = ...; // opened from get_busses()
usb_set_configuration(dev, dev->config[0].bConfigurationValue); // bConfigVal = 1
الآن أنا يمكن أن ننظر في معلومات الجهاز في وضع التصحيح وأنا أعرف أن التكوين الحالي هو 0 (غير مهيأ / بعد إعادة تشغيل) و هناك بالضبط 1 صالحة التكوين ، والتي لديها تكوين عدد 1.ولكن عندما أنا وضعت التكوين إلى 1 ، أحصل على قيمة العائد من -22 التي (مرت stringifier) يترجم إلى "ويندوز api خطأ:سيئة المعلمة.
لم أكن قادرة على العثور على أشخاص آخرين من وجود مشكلة مماثلة, و يبدو أن هذا شيء بسيط القيام به-لا أستطيع حتى المطالبة واجهة ، أو تعيين بديل واجهة, أو شيء من هذا القبيل لأن لدي لتعيين التكوين الأولى.ما أنا في عداد المفقودين ؟ (إذا كان من المسائل:هذا هو على ويندوز إكس بي)
المحلول
تبحث في libusb-win32\src\driver\set_configuration.ج ، يبدو أن هناك مجموعة من الأسباب المختلفة من أجل العودة STATUS_INVALID_PARAMETER
.
استخدام libusb_set_debug
(من وضع المستخدم التطبيق) إلى مجموعة مطول مستوى التصحيح ، ثم تشغيل Sysinternals DebugView رؤية السائق رسائل الخطأ.نأمل كنت انظر دليل على السبب الخاص بك set_configuration
فشل استدعاء.