Issues porting libusb USB firmware over to Windows 10

為{幸葍}努か 提交于 2019-12-11 13:43:49

问题


I'm working with a custom USB firmware written in C utilizing the libusb API. The goal is to have this firmware compatible with Linux, Mac, and Windows. Thus far, testing w/a Beaglebone Black with debug probe on Ubuntu & Mac has yielded proper USB enumeration and operations with the respective OS's host application. However, trying to connect the board to Windows 10 results in 'This device cannot start. (Code 10) An invalid parameter was passed to a service or function.'

I have primarily been relying on the WCID wiki and libusb wiki regarding porting libusb over to Windows. I've added the MS OS String Descriptor and MS OS CID Feature Descriptor for WINUSB; Zadig shows that the device is now WCID-compliant and is recognized as a WinUSB device.

Using USB Device Tree Viewer 3.6, problem code CM_PROB_FAILED_START appears to be the primary issue.

    ----------------- Device Qualifier Descriptor -----------------
Error                    : ERROR_GEN_FAILURE

      -------------------- String Descriptors -------------------
String descriptors are not available  (because the device has problem code CM_PROB_FAILED_START)

Notably, the device qualifier exists in the firmware and is properly displayed when utilizing libusb0, but I've heard that it has been deprecated and am thus trying to get compatibility with WinUSB.

Are there any particular descriptor issues or other firmware requirements that are more strict in Windows 10 vs. Linux? Since the device is failing to even start, I'm guessing that the firmware is not properly set up for Windows specifically.

来源:https://stackoverflow.com/questions/57581061/issues-porting-libusb-usb-firmware-over-to-windows-10

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!