Hi, I wanted to use libusb-win32 as driver for libusb-1.0 so I used Zadig to change the driver for the device from WinUSB to libusb-win32. However doing just this would fail. For instance xusb was not able to read the description strings. The logs were saying something like:
libusbx: debug [libusb_open] open 2.6 libusbx: debug [libusb_claim_interface] interface 0 libusbx: error [winusbx_claim_interface] failed to Initialize at line 2685 [message added by Tormod] libusbx: error [winusbx_claim_interface] could not access interface 0: [0] The operation completed successfully. libusbx: debug [libusb_claim_interface] interface 1 libusbx: warning [winusbx_claim_interface] auto-claimed interface 0 (required to claim 1 with WinUSB) libusbx: error [winusbx_claim_interface] could not claim interface 1: [6] The handle is invalid. libusbx: debug [libusb_claim_interface] interface 2 libusbx: warning [winusbx_claim_interface] auto-claimed interface 0 (required to claim 2 with WinUSB) libusbx: error [winusbx_claim_interface] could not claim interface 2: [6] The handle is invalid. ... [and so on counting interfaces up to 31] ... libusbx: error [auto_claim] could not auto-claim any interface So I looked through the claim_interface and auto-claim code, and I could narrow it down to the Initialize call at libusb/os/windows_usb.c:2685 but did not get much further. Now after reading the fine print in the commit message https://github.com/libusbx/libusbx/commit/f2b19e4a32c1445f4fea06beca61e8c7e7757950 "Both libusbk and libusb0.sys rely on libusbk.dll being installed to provides a WinUSB-like API for driver access." I figured I should try again making sure libusbk.dll is installed. So I used Zadig to install libusbK for the device, then switched back to libusb-win32 again. And now it worked. So 1) I think it should be better documented that the libusb-win32 driver backend either uses the libusbK or WinUSB driver and does not function with libusb-win32 alone. Although I am not sure I understand this correctly, libusb-win32 is also a "driver" that can access devices without the help of libusbK or WinUSB, right? 2) The same commit message says "In case libusbk.dll is not present, fall back to WinUSB". Apparently, this path did not work in my case. Have I found a bug or am I missing something? Anyway, avoiding the limitations of WinUSB (in particular the inability to send a reset command) is my motivation for using libusb-win32 so I am not directly concerned about (2). But just to understand this better, what is the possible advantage of using the libusb-win32 driver backend going via the WinUSB driver as opposed to using the WinUSB driver backend directly? The "filter" facility? Is the libusb-win32 driver accessing the device through WinUSB or does it just need some "help" from WinUSB? Of course, a nice graphical presentation of the Windows driver layering would be very welcome :) Best regards, Tormod ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://ad.doubleclick.net/clk;258768047;13503038;j? http://info.appdynamics.com/FreeJavaPerformanceDownload.html _______________________________________________ libusbx-devel mailing list libusbx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libusbx-devel