USB_PROTOCOLS union (usbioctl.h)

The USB_PROTOCOLS union is used to report the Universal Serial Bus (USB) signaling protocols that are supported by the port.

The supported protocols are retrieved in the USB_NODE_CONNECTION_INFORMATION_EX_V2 structure by the IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 I/O control request.

In the IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 request, the caller specifies a bitwise OR of one or more flags defined in USB_PROTOCOLS. Upon successful completion, the request retrieves flags, which indicate the protocols that are actually supported by the port.

Syntax

typedef union _USB_PROTOCOLS {
  ULONG  ul;
  struct {
    ULONG Usb110 : 1;
    ULONG Usb200 : 1;
    ULONG Usb300 : 1;
    ULONG ReservedMBZ : 29;
  };
} USB_PROTOCOLS, *PUSB_PROTOCOLS;

Members

ul

A bitmask that indicates the USB signaling protocols that are supported by the port.

Usb110

If TRUE, the port supports the protocols that are defined in the USB 1.1 Specification. This indicates that the port supports full-speed and low-speed operations. Usb110 is always TRUE for high-speed ports because those ports support full-speed and low-speed operations through split transactions and transaction translators.

Usb200

If TRUE, the port supports the protocols that are defined USB 2.0 Specification. This indicates that the port supports high-speed operations.

Usb300

If TRUE, the port supports the protocols that are defined USB 3.0 Specification. This indicates that the port supports SuperSpeed operations.

ReservedMBZ

Reserved. Do not use.

Requirements

Requirement Value
Minimum supported client Windows 8
Minimum supported server None supported
Header usbioctl.h (include Usbioctl.h)

See also

IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2

USB_NODE_CONNECTION_INFORMATION_EX_V2