2.2.11 USB_DEVICE_CAPABILITIES

The USB_DEVICE_CAPABILITIES structure defines the capabilities of a USB device.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

CbSize

UsbBusInterfaceVersion

USBDI_Version

Supported_USB_Version

HcdCapabilities

DeviceIsHighSpeed

NoAckIsochWriteJitterBufferSizeInMs

CbSize (4 bytes): A 32-bit unsigned integer. The byte size of this structure. This value MUST be 28.

UsbBusInterfaceVersion (4 bytes): A 32-bit unsigned integer. The USB version the device supports.

Value

USB version supported

0x00000000

0

0x00000001

1

0x00000002

2

USBDI_Version (4 bytes): A 32-bit unsigned integer. The highest USBDI version the device supports. This value can be 0x00000500 or 0x00000600.

Supported_USB_Version (4 bytes): A 32-bit unsigned integer. The version of USB the device supports. The value MUST be one of the following:

Name

Value

USB 1.0

0x100

USB 1.1

0x110

USB 2.0

0x200

HcdCapabilities (4 bytes): A 32-bit unsigned integer. The host capabilities supported. This value MUST always be zero.

DeviceIsHighSpeed (4 bytes): A 32-bit unsigned integer. This value represents the device speed. 0x00000000 if the device is full speed and 0x00000001 if the device is high speed. If UsbBusInterfaceVersion is 0x00000000, DeviceIsHighSpeed MUST be 0x00000000. A high speed device operates as a USB 2.0 device while a full speed device operates as a USB 1.1 device.

NoAckIsochWriteJitterBufferSizeInMs (4 bytes): A 32-bit unsigned integer. If the value is nonzero, the client supports TS_URB_ISOCH_TRANSFER messages that do not expect URB_COMPLETION messages; otherwise, if the value is zero, the client does not support TS_URB_ISOCH_TRANSFER messages. If the value is not zero, the value represents the amount of outstanding isochronous data the client expects from the server. If this value is nonzero, it MUST be greater than or equal to 10 and less than or equal to 512.