USB_BANDWIDTH_INFO structure (usbuser.h)

The USB_BANDWIDTH_INFO structure is used with the IOCTL_USB_USER_REQUEST I/O control request to retrieve information about the allocated bandwidth.

Syntax

typedef struct _USB_BANDWIDTH_INFO {
  ULONG DeviceCount;
  ULONG TotalBusBandwidth;
  ULONG Total32secBandwidth;
  ULONG AllocedBulkAndControl;
  ULONG AllocedIso;
  ULONG AllocedInterrupt_1ms;
  ULONG AllocedInterrupt_2ms;
  ULONG AllocedInterrupt_4ms;
  ULONG AllocedInterrupt_8ms;
  ULONG AllocedInterrupt_16ms;
  ULONG AllocedInterrupt_32ms;
} USB_BANDWIDTH_INFO, *PUSB_BANDWIDTH_INFO;

Members

DeviceCount

The number of devices on the bus.

TotalBusBandwidth

The amount of allocated bandwidth, in bits per millisecond.

Total32secBandwidth

The amount of allocated bandwidth bits in each 32-millisecond time slice.

AllocedBulkAndControl

The amount of bandwidth, in bits per 32-millisecond, that is allocated for bulk and control transfers.

AllocedIso

The amount of bandwidth, in bits per 32-millisecond, that is allocated for isochronous transfers.

AllocedInterrupt_1ms

The amount of bandwidth, in bits per 32-millisecond, that is allocated for interrupt transactions when the period is 1 millisecond.

AllocedInterrupt_2ms

The amount of bandwidth, in bits per 32-millisecond, that is allocated for interrupt transactions when the period is 2 milliseconds.

AllocedInterrupt_4ms

The amount of bandwidth, in bits per 32-millisecond, that is allocated for interrupt transactions when the period is 4 milliseconds.

AllocedInterrupt_8ms

The amount of bandwidth, in bits per 32-millisecond, that is allocated for interrupt transactions when the period is 8 milliseconds.

AllocedInterrupt_16ms

The amount of bandwidth, in bits per 32-millisecond, that is allocated for interrupt transactions when the period is 16 milliseconds.

AllocedInterrupt_32ms

The amount of bandwidth, in bits per 32-millisecond, that is allocated for interrupt transactions when the period is 32 milliseconds.

Remarks

The USB_BANDWIDTH_INFO structure is used with the USBUSER_GET_BANDWIDTH_INFORMATION user-mode request. For a description of this request, see IOCTL_USB_USER_REQUEST.

In Windows 8, this request completes successfully. However, the values retrieved from the underlying USB 3.0 driver stack do not reflect actual information about the allocated bandwidth. That is because the bandwidth information is not exposed by xHCI controllers.

Requirements

Requirement Value
Header usbuser.h (include Usbuser.h)

See also

IOCTL_USB_USER_REQUEST

USB Structures