>> I just installed the driver with Zadig. Yes there are two interfaces, >> interface 0 has a single endpoint and interface 1 has the two bulk end >> points. What confused me was that using libusbx I am able to use the >> bulk endpoints, but with the WinUSB API I can't. > > I don't know how Zadig creates the INF file. Windows allows you to > write an INF file that claims the entire device: > %MyDeviceDesc% = install.section, USB\VID_11111&PID_2222 > With that, you can get a handle to the other interfaces using > WinUSB_GetAssociatedInterface. > > But Windows also allows you to write an INF that only claimes one interface: > %MyDeviceDesc% = install.section, USB\VID_11111&PID_2222&MI_00 > or > %MyDeviceDesc% = install.section, USB\VID_11111&PID_2222&MI_01 > > If you use that option, then the system rewrites the descriptors so that > your driver doesn't even KNOW there is a second interface.
I checked the inf created by Zadig, and it claims the entire device. I assumed this had to be the case, since libusbx is able to acces both interfaces. I'm going to keep trying to figure out how to use WinUSB directly. So this seems like a bug in libusbx that it doesn't seem to honor the synchronous API expectations in this case, as evidenced by the concatenating of the buffers from multiple calls. Or am I missing something? Is there a way to send a zero length bulk transfer? Just setting the length to zero doesn't do it. ~QSE ------------------------------------------------------------------------------ Try New Relic Now & We'll Send You this Cool Shirt New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, & servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may _______________________________________________ libusbx-devel mailing list libusbx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libusbx-devel