We have a composite device that works like a USB HUB connecting to one 
device at a time.
When a new connection is made the endpoints change although the device 
connection itself is not changed.
On windows we had it working with an old pre 1.0.9 version from the 
pbatard repository, but upgrading to the new version 1.0.18-rc1 didn't work.
We discovered that the enpoints discovered on the first connection were 
reused at all the subsequential connections which of course didn't work.

The following patch fixes the issue:
--- a/libusb/os/windows_usb.c   2014-01-09 00:55:51.000000000 +0100
+++ b/libusb/os/windows_usb.c   2014-01-23 15:30:12.000000000 +0100
@@ -1134,10 +1134,6 @@
         priv->parent_dev = parent_dev;
         dev->parent_dev = parent_dev;

-       // If the device address is already set, we can stop here
-       if (dev->device_address != 0) {
-               return LIBUSB_SUCCESS;
-       }
         memset(&conn_info, 0, sizeof(conn_info));
         if (priv->depth != 0) { // Not a HCD hub
                 handle = CreateFileA(parent_priv->path, GENERIC_WRITE, 
FILE_SHARE_WRITE, NULL, OPEN_EXISTING,


We sincerely hope you will accept and include the patch in the final 
1.0.18 version as it will bring us back to the mainline libusb code.

Kind regards
Bent Bisballe Nyeng

------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
libusbx-devel mailing list
libusbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusbx-devel

Reply via email to