سؤال

أنا أحاول التحدث إلى جهاز 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 فشل استدعاء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top