It seems Index number (0) passed via USBDBulkInit() may refer to the (Bulk_Address) used in a Windows Bulk device client connection. Adding an address field to the hUSB Bulk device client handle compiles without error as shown below. The second TM4C launch pad when plugged into the USB Hub Windows PNP manager adds a second Bulk device -- that is not the second endpoint specified as Index 0.
It seems Tivaware project (usblib) has Not been stubbed out for more than one end point in the bulk device. Windows GUID class PNP driver automatically assigns the next Bulk address shown below. We should be able to pass the USB device address to windows. Question is where is the proper place to pass TM4C bulk address in the USB descriptor? Perhaps the Bulk device 2 end points defined in (usblib) should allow for up to 8 end points per device as there seems to be no way to access appended USB device addresses in Windows. It is our view a single USB device class should allow multiple Bulk device connections - up to 8 total per device.
Windows Bulk device initialization:
// Find our USB device and prepare it for communication.
hUSB = InitializeDevice(BULK_VID, BULK_PID &(BULK_ADDRESS),
(LPGUID)&(GUID_DEVINTERFACE_TIVA_BULK),
&bDriverInstalled);
USB device initialization: // Pass our device information to the USB library and place the device on the bus. USBDBulkInit(0, &g_sBulkDevice);
