Thank you for the responses everyone.
Peter / Doron:
> ETW Log
I captured the ETW core dump. I'm not entirely sure what the look for, so I captured a log of a properly-enumerating USB device as well and compared them. The sequence of USBPort_MicrosoftWindowsUSBUSBPORT and USBHub_MicrosoftWindowsUSBUSBHUB event entries are the same for both in the "Frame Summary" window.
I also tried applying the "USB hub errors" standard filter, which does find five WINEVENT_LEVEL_ERROR NetEvent entries. I've copied the information for these entries to the bottom of this post
> Are you connected via some sort of Full Speed hub?
There is no external hub. The device is plugged directly into the host controller port.
> What does your device answer to the request for the Device Qualifier Descriptor?
The device does not answer the request. I should have mentioned earlier, but it responds with STALL. I can see "0 bytes - not enough data" in the USB trace, which is what I meant by 'returns zero bytes' earlier.
> Does the returned descriptor parse properly on your analyzer?
Since no descriptor is provided, there is no parsing.
It appears the hardware does not support this descriptor. In my work with our USB devices I've never even seen it, since I've worked exclusively with USB2 and 3.
Tim:
> One possible cause for STATUS_INSUFFICIENT_RESOURCES is that you have scheduled endpoints <...snip>
We do not use an scheduled endpoints. The device only provides a single BULK EP in addition to EP0. Here's a view of the descriptors, ripped out of USBTrace:
------------------ Device Descriptor ------------------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x01 (Device Descriptor)
bcdUSB : 0x200 (USB Version 2.00)
bDeviceClass : 0x00 (defined by the interface descriptors)
bDeviceSubClass : 0x00
bDeviceProtocol : 0x00
bMaxPacketSize0 : 0x40 (64 bytes)
idVendor : 0xXXXX
idProduct : 0x1000
bcdDevice : 0x00
iManufacturer : 0x01
iProduct : 0x02
iSerialNumber : 0x03
bNumConfigurations : 0x01
-------------- Configuration Descriptor ---------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x0019 (25 bytes)
bNumInterfaces : 0x01
bConfigurationValue : 0x01
iConfiguration : 0x00
bmAttributes : 0x80 (Bus Powered)
MaxPower : 0xFA (500 mA)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00
bAlternateSetting : 0x00
bNumEndpoints : 0x01
bInterfaceClass : 0xFF (Vendor Specific)
bInterfaceSubClass : 0x00
bInterfaceProtocol : 0x00
iInterface : 0x00
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x200 (512 bytes)
bInterval : 0x00 (ignored)
ETW Error events mentioned above:
Frame: Number = 149, Captured Frame Length = 105, MediaType = NetEvent
- NetEvent:
- Header:
Size: 96 (0x60)
HeaderType: 0 (0x0)
- Flags: 32 (0x20)
- EventProperty: 0 (0x0)
ThreadId: 0 (0x0)
ProcessId: 0, ProcessName:
TimeStamp: 03/24/2014, 17:48:04.403891 UTC
ProviderId: {AC52AD17-CC01-4F85-8DF5-4DCE4333C99B}
- Descriptor:
Id: 176 (0xB0)
Version: 0 (0x0)
Channel: 16 (0x10)
Level: WINEVENT_LEVEL_ERROR
Opcode: 0xb
Task: 9 (0x9)
DefaultKeyword: 9223372036854793217 (0x8000000000004401)
ProcessorTime: 22650 (0x587A)
ActivityId: {5FCF7618-4788-0001-5977-CF5F8847CF01}
ETLProvider:
- BufferContext:
ProcessorNumber: 4 (0x4)
Alignment: 0 (0x0)
LoggerId: 12 (0xC)
ExtendedDataCount: 0 (0x0)
UserDataLength: 16 (0x10)
Reassembled: 0 (0x0)
UserData: Binary Large Object (16 Bytes)
Frame: Number = 162, Captured Frame Length = 105, MediaType = NetEvent
- NetEvent:
- Header:
Size: 96 (0x60)
HeaderType: 0 (0x0)
- Flags: 32 (0x20)
- EventProperty: 0 (0x0)
ThreadId: 0 (0x0)
ProcessId: 0, ProcessName:
TimeStamp: 03/24/2014, 17:48:04.415874 UTC
ProviderId: {AC52AD17-CC01-4F85-8DF5-4DCE4333C99B}
- Descriptor:
Id: 165 (0xA5)
Version: 0 (0x0)
Channel: 16 (0x10)
Level: WINEVENT_LEVEL_ERROR
Opcode: 0xb
Task: 9 (0x9)
DefaultKeyword: 9223372036854793217 (0x8000000000004401)
ProcessorTime: 22407 (0x5787)
ActivityId: {5FCF7618-4788-0001-5977-CF5F8847CF01}
ETLProvider:
- BufferContext:
ProcessorNumber: 0 (0x0)
Alignment: 0 (0x0)
LoggerId: 12 (0xC)
ExtendedDataCount: 0 (0x0)
UserDataLength: 16 (0x10)
Reassembled: 0 (0x0)
UserData: Binary Large Object (16 Bytes)
Frame: Number = 163, Captured Frame Length = 105, MediaType = NetEvent
- NetEvent:
- Header:
Size: 96 (0x60)
HeaderType: 0 (0x0)
- Flags: 32 (0x20)
- EventProperty: 0 (0x0)
ThreadId: 0 (0x0)
ProcessId: 0, ProcessName:
TimeStamp: 03/24/2014, 17:48:04.415874 UTC
ProviderId: {AC52AD17-CC01-4F85-8DF5-4DCE4333C99B}
- Descriptor:
Id: 132 (0x84)
Version: 0 (0x0)
Channel: 16 (0x10)
Level: WINEVENT_LEVEL_ERROR
Opcode: 0xb
Task: 15 (0xF)
DefaultKeyword: 9223372036854792193 (0x8000000000004001)
ProcessorTime: 22407 (0x5787)
ActivityId: {00000000-0000-0000-0000-000000000000}
ETLProvider:
- BufferContext:
ProcessorNumber: 0 (0x0)
Alignment: 0 (0x0)
LoggerId: 12 (0xC)
ExtendedDataCount: 0 (0x0)
UserDataLength: 16 (0x10)
Reassembled: 0 (0x0)
UserData: Binary Large Object (16 Bytes)
Frame: Number = 183, Captured Frame Length = 105, MediaType = NetEvent
- NetEvent:
- Header:
Size: 96 (0x60)
HeaderType: 0 (0x0)
- Flags: 32 (0x20)
- EventProperty: 0 (0x0)
ThreadId: 36 (0x24)
ProcessId: 4, ProcessName:
TimeStamp: 03/24/2014, 17:48:05.442832 UTC
ProviderId: {AC52AD17-CC01-4F85-8DF5-4DCE4333C99B}
- Descriptor:
Id: 176 (0xB0)
Version: 0 (0x0)
Channel: 16 (0x10)
Level: WINEVENT_LEVEL_ERROR
Opcode: 0xb
Task: 9 (0x9)
DefaultKeyword: 9223372036854793217 (0x8000000000004401)
ProcessorTime: 6 (0x6)
ActivityId: {5FCF7618-4788-0003-1F77-CF5F8847CF01}
ETLProvider:
- BufferContext:
ProcessorNumber: 3 (0x3)
Alignment: 0 (0x0)
LoggerId: 12 (0xC)
ExtendedDataCount: 0 (0x0)
UserDataLength: 16 (0x10)
Reassembled: 0 (0x0)
UserData: Binary Large Object (16 Bytes)
Frame: Number = 189, Captured Frame Length = 118, MediaType = NetEvent
- NetEvent:
- Header:
Size: 109 (0x6D)
HeaderType: 0 (0x0)
- Flags: 32 (0x20)
- EventProperty: 0 (0x0)
ThreadId: 0 (0x0)
ProcessId: 0, ProcessName:
TimeStamp: 03/24/2014, 17:48:05.445572 UTC
ProviderId: {30E1D284-5D88-459C-83FD-6345B39B19EC}
- Descriptor:
Id: 34 (0x22)
Version: 0 (0x0)
Channel: 16 (0x10)
Level: WINEVENT_LEVEL_ERROR
Opcode: 0xa
Task: 22 (0x16)
DefaultKeyword: 4611686018427912193 (0x4000000000080001)
ProcessorTime: 22473 (0x57C9)
ActivityId: {00000000-0000-0000-0000-000000000000}
ETLProvider:
- BufferContext:
ProcessorNumber: 0 (0x0)
Alignment: 0 (0x0)
LoggerId: 12 (0xC)
ExtendedDataCount: 0 (0x0)
UserDataLength: 29 (0x1D)
Reassembled: 0 (0x0)
UserData: Binary Large Object (29 Bytes)
Thanks!