Hello All,
We are developing a USB device that has ISO endpoints. The is such that it
has two mutually exclusive interfaces: a low-bandwidth interface with two
endpoints and a second interface with 6 endpoints (2-ISO, 2-Bulk, 2-Int). We
are having trouble getting the device to enumerate (the call to
WdfUsbTargetDeviceSelectConfig() returns imediately with 0xC0000001) and
suspect the problem is with the descriptors.
Below is the entire descriptor – could someone please take a look to if
this is correct.
Thanks.
*Descriptors*
Device Descriptor
Length: 0x12
Descriptor Type: 0x1
bcdUSB: 0x200
Device Class: 0x0
Device Subclass: 0x0
Protocol: 0x0
Max Packet: 0x40
idVendor: 0x4004
idProduct: 0x1
bcdDevice: 0x0
iMan: 0x1
iProduct: 0x2
iSerialNum: 0x0
Num Config: 0x1
Config Descriptor
bLength: 0x9
bDescriptorType: 0x2
wTotalLength: 0x53
bNumInterfaces: 0x2
bConfigurationValue: 0x1
iConfiguration: 0x0
MaxPower: 0x0
Interface Descriptor: 1
bLength: 0x9
bDescriptorType: 0x4
bInterfaceNumber: 0x0
bAlternateSetting: 0x0
bNumEndpoints: 0x2
bInterfaceClass: 0xff
bInterfaceSubClass: 0xff
bInterfaceProtocol: 0x0
iInterface: 0x0
EndPoint Descriptor
bLength: 0x7
bDescriptorType: 0x5
bEndpointAddress: 0x81
bmAttributes: 0x3
wMaxPacketSize: 0x200
bInterval: 0x4
EndPoint Descriptor
bLength: 0x7
bDescriptorType: 0x5
bEndpointAddress: 0x1
bmAttributes: 0x3
wMaxPacketSize: 0x200
bInterval: 0x4
Interface Descriptor: 2
bLength: 0x9
bDescriptorType: 0x4
bInterfaceNumber: 0x0
bAlternateSetting: 0x1
bNumEndpoints: 0x6
bInterfaceClass: 0xff
bInterfaceSubClass: 0xff
bInterfaceProtocol: 0x0
iInterface: 0x0
EndPoint Descriptor
bLength: 0x7
bDescriptorType: 0x5
bEndpointAddress: 0x81
bmAttributes: 0x3
wMaxPacketSize: 0x200
bInterval: 0x4
EndPoint Descriptor
bLength: 0x7
bDescriptorType: 0x5
bEndpointAddress: 0x1
bmAttributes: 0x3
wMaxPacketSize: 0x200
bInterval: 0x4
EndPoint Descriptor
bLength: 0x7
bDescriptorType: 0x5
bEndpointAddress: 0x82
bmAttributes: 0x2
wMaxPacketSize: 0x200
bInterval: 0x4
EndPoint Descriptor
bLength: 0x7
bDescriptorType: 0x5
bEndpointAddress: 0x2
bmAttributes: 0x2
wMaxPacketSize: 0x200
bInterval: 0x4
EndPoint Descriptor
bLength: 0x7
bDescriptorType: 0x5
bEndpointAddress: 0x83
bmAttributes: 0x1
wMaxPacketSize: 0x400
bInterval: 0x1
EndPoint Descriptor
bLength: 0x7
bDescriptorType: 0x5
bEndpointAddress: 0x3
bmAttributes: 0x1
wMaxPacketSize: 0x400
bInterval: 0x1