URB

USB Structures

This section describes the system-defined structures that are used by Universal Serial Bus (USB) client drivers on Windows Driver Model (WDM) platforms. For more information about system-defined structures that are not described in this section, see System Structures.

Drivers can use only the members of structures that are described in this section. All undocumented members of these structures are reserved for system use.

Transfer buffers that are members of structures that are defined in this section must be nonpageable memory.

In this section

TopicDescription

_URB_BULK_OR_INTERRUPT_TRANSFER

The _URB_BULK_OR_INTERRUPT_TRANSFER structure is used by USB client drivers to send or receive data on a bulk pipe or on an interrupt pipe.

_URB_CONTROL_DESCRIPTOR_REQUEST

The _URB_CONTROL_DESCRIPTOR_REQUEST structure is used by USB client drivers to get or set descriptors on a USB device.

_URB_CONTROL_FEATURE_REQUEST

The _URB_CONTROL_FEATURE_REQUEST structure is used by USB client drivers to set or clear features on a device, interface, or endpoint.

_URB_CONTROL_GET_CONFIGURATION_REQUEST

The _URB_CONTROL_GET_CONFIGURATION_REQUEST structure is used by USB client drivers to retrieve the current configuration for a device.

_URB_CONTROL_GET_INTERFACE_REQUEST

The _URB_CONTROL_GET_INTERFACE_REQUEST structure is used by USB client drivers to retrieve the current alternate interface setting for an interface in the current configuration.

_URB_CONTROL_GET_STATUS_REQUEST

The _URB_CONTROL_GET_STATUS_REQUEST structure is used by USB client drivers to retrieve status from a device, interface, endpoint, or other device-defined target.

_URB_CONTROL_TRANSFER

The _URB_CONTROL_TRANSFER structure is used by USB client drivers to transfer data to or from a control pipe.

_URB_CONTROL_TRANSFER_EX

The _URB_CONTROL_TRANSFER_EX structure is used by USB client drivers to transfer data to or from a control pipe, with a timeout that limits the acceptable transfer time.

_URB_CONTROL_VENDOR_OR_CLASS_REQUEST

The _URB_CONTROL_VENDOR_OR_CLASS_REQUEST structure is used by USB client drivers to issue a vendor or class-specific command to a device, interface, endpoint, or other device-defined target.

_URB_GET_CURRENT_FRAME_NUMBER

The _URB_GET_CURRENT_FRAME_NUMBER structure is used by USB client drivers to retrieve the current frame number.

_URB_HEADER

The _URB_HEADER structure is used by USB client drivers to provide basic information about the request being sent to the host controller driver.

_URB_ISOCH_TRANSFER

The _URB_ISOCH_TRANSFER structure is used by USB client drivers to send data to or retrieve data from an isochronous transfer pipe.

_URB_OPEN_STATIC_STREAMS

The _URB_OPEN_STATIC_STREAMS structure is used by a USB client driver to open streams in the specified bulk endpoint.

_URB_OS_FEATURE_DESCRIPTOR_REQUEST

The _URB_OS_FEATURE_DESCRIPTOR_REQUEST structure is used by the USB hub driver to retrieve Microsoft OS Feature Descriptors from a USB device or an interface on a USB device.

_URB_PIPE_REQUEST

The _URB_PIPE_REQUEST structure is used by USB client drivers to clear a stall condition on an endpoint.

_URB_SELECT_CONFIGURATION

The _URB_SELECT_CONFIGURATION structure is used by client drivers to select a configuration for a USB device.

_URB_SELECT_INTERFACE

The _URB_SELECT_INTERFACE structure is used by USB client drivers to select an alternate setting for an interface or to change the maximum packet size of a pipe in the current configuration on a USB device.

COMPOSITE_DEVICE_CAPABILITIES

The COMPOSITE_DEVICE_CAPABILITIES structure specifies the capabilities of the driver of a USB multi-function device (composite driver). To initialize the structure, use the COMPOSITE_DEVICE_CAPABILITIES_INIT macro.

HUB_DEVICE_CONFIG_INFO

The HUB_DEVICE_CONFIG_INFO structure is used in conjunction with the kernel-mode IOCTL, IOCTL_INTERNAL_USB_GET_DEVICE_CONFIG_INFO to request to report information about a USB device and the hub to which the device is attached.

REGISTER_COMPOSITE_DEVICE

The REGISTER_COMPOSITE_DEVICE structure is used with the IOCTL_INTERNAL_USB_REGISTER_COMPOSITE_DEVICE I/O control request to register a parent driver of a Universal Serial Bus (USB) multi-function device (composite driver) with the USB driver stack.

REQUEST_REMOTE_WAKE_NOTIFICATION

The purpose of the REQUEST_REMOTE_WAKE_NOTIFICATION structure is to specify input parameters for the IOCTL_INTERNAL_USB_REQUEST_REMOTE_WAKE_NOTIFICATION I/O control request.

URB

The URB structure is used by USB client drivers to describe USB request blocks (URBs) that send requests to the USB driver stack. The URB structure defines a format for all possible commands that can be sent to a USB device.

USB_30_HUB_DESCRIPTOR

The USB_30_HUB_DESCRIPTOR structure contains a SuperSpeed hub descriptor. For information about the structure members, see Universal Serial Bus Revision 3.0 Specification, 10.13.2.1 Hub Descriptor, Table 10-3. SuperSpeed Hub Descriptor.

USB_BANDWIDTH_INFO

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

USB_BUS_INFORMATION_LEVEL_0

The USB_BUS_INFORMATION_LEVEL_0 structure is used in conjunction with the QueryBusInformation interface routine to report information about the bus.

USB_BUS_INFORMATION_LEVEL_1

The USB_BUS_INFORMATION_LEVEL_1 structure is used in conjunction with the QueryBusInformation interface routine to report information about the bus.

USB_BUS_INTERFACE_USBDI_V0

The USB_BUS_INTERFACE_USBDI_V0 structure is provided by the USB hub driver to allow USB clients to make direct calls to the hub driver without allocating IRPs.

USB_BUS_INTERFACE_USBDI_V1

The USB_BUS_INTERFACE_USBDI_V1 structure is provided by the USB hub driver to allow USB clients to make direct calls to the hub driver without allocating IRPs.

USB_BUS_INTERFACE_USBDI_V2

The USB_BUS_INTERFACE_USBDI_V2 structure is provided by the USB hub driver to allow USB clients to make direct calls to the hub driver without allocating IRPs.

USB_BUS_INTERFACE_USBDI_V3

The USB_BUS_INTERFACE_USBDI_V3 structure is provided by the USB hub driver to allow USB clients to make direct calls to the hub driver without allocating IRPs.

USB_BUS_STATISTICS_0

The USB_BUS_STATISTICS_0 structure is used with the IOCTL_USB_USER_REQUEST I/O control request to retrieve bus statistics.

USB_CLOSE_RAW_DEVICE_PARAMETERS

The USB_CLOSE_RAW_DEVICE_PARAMETERS structure is used with the IOCTL_USB_USER_REQUEST I/O control request to close raw access to devices on the bus.

USB_COMMON_DESCRIPTOR

The USB_COMMON_DESCRIPTOR structure contains the head of the first descriptor that matches the search criteria in a call to USBD_ParseDescriptors.

USB_CONFIGURATION_DESCRIPTOR

The USB_CONFIGURATION_DESCRIPTOR structure is used by USB client drivers to hold a USB-defined configuration descriptor.

USB_CONTROLLER_INFO_0

The USB_CONTROLLER_INFO_0 structure is used with the IOCTL_USB_USER_REQUEST I/O control request to retrieve information about the USB host controller.

USB_CYCLE_PORT_PARAMS

The USB_CYCLE_PORT_PARAMS structure is used with the IOCTL_USB_HUB_CYCLE_PORT I/O control request to power cycle the port that is associated with the PDO that receives the request.

USB_DESCRIPTOR_REQUEST

The USB_DESCRIPTOR_REQUEST structure is used with the IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION I/O control request to retrieve one or more descriptors for the device that is associated with the indicated connection index.

USB_DEVICE_DESCRIPTOR

The USB_DEVICE_DESCRIPTOR structure is used by USB client drivers to retrieve a USB-defined device descriptor.

USB_DEVICE_QUALIFIER_DESCRIPTOR

The USB_DEVICE_QUALIFIER_DESCRIPTOR structure is used by USB client drivers to retrieve a USB-defined device qualifier descriptor.

USB_DRIVER_VERSION_PARAMETERS

The USB_DRIVER_VERSION_PARAMETERS structure is used with the IOCTL_USB_USER_REQUEST I/O control request to retrieve version information.

USB_ENDPOINT_DESCRIPTOR

The USB_ENDPOINT_DESCRIPTOR structure is used by USB client drivers to retrieve a USB-defined endpoint descriptor.

USB_HCD_DRIVERKEY_NAME

The USB_HCD_DRIVERKEY_NAME structure is used with the IOCTL_GET_HCD_DRIVERKEY_NAME I/O control request to retrieve the driver key in the registry for the USB host controller driver.

USB_HUB_CAP_FLAGS

The USB_HUB_CAP_FLAGS structure is used to report the capabilities of a hub.

USB_HUB_CAPABILITIES

The USB_HUB_CAPABILITIES structure has been deprecated. Use USB_HUB_CAPABILITIES_EX instead.

USB_HUB_INFORMATION_EX

The USB_HUB_INFORMATION_EX structure is used with the IOCTL_USB_GET_HUB_INFORMATION_EX I/O control request to retrieve information about a USB hub.

USB_HUB_CAPABILITIES_EX

The USB_HUB_CAPABILITIES_EX structure is used with the IOCTL_USB_GET_HUB_CAPABILITIES I/O control request to retrieve the capabilities of a particular USB hub.

USB_HUB_DESCRIPTOR

The USB_HUB_DESCRIPTOR structure contains a hub descriptor.

USB_HUB_INFORMATION

The USB_HUB_INFORMATION structure contains information about a hub.

USB_HUB_NAME

The USB_HUB_NAME structure stores the hub's symbolic device name.

USB_ID_STRING

The USB_ID_STRING structure is used to store a string or multi-string.

USB_INTERFACE_DESCRIPTOR

The USB_INTERFACE_DESCRIPTOR structure is used by USB client drivers to retrieve a USB-defined interface descriptor.

USB_MI_PARENT_INFORMATION

The USB_MI_PARENT_INFORMATION structure contains information about a composite device.

USB_NODE_CONNECTION_ATTRIBUTES

The USB_NODE_CONNECTION_ATTRIBUTES structure is used with the IOCTL_USB_GET_NODE_CONNECTION_ATTRIBUTES I/O control request to retrieve the attributes of a connection.

USB_NODE_CONNECTION_DRIVERKEY_NAME

The USB_NODE_CONNECTION_DRIVERKEY_NAME structure is used with the IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME I/O control request to retrieve the driver key name for the device that is connected to the indicated port.

USB_NODE_CONNECTION_INFORMATION

The USB_NODE_CONNECTION_INFORMATION structure is used with the IOCTL_USB_GET_NODE_CONNECTION_INFORMATION request to retrieve information about a USB port and connected device.

USB_NODE_CONNECTION_INFORMATION_EX

The USB_NODE_CONNECTION_INFORMATION_EX structure is used in conjunction with the IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX request to obtain information about the connection associated with the indicated USB port.

USB_NODE_CONNECTION_INFORMATION_EX_V2

The USB_NODE_CONNECTION_INFORMATION_EX_V2 structure is used with the IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 I/O control request to retrieve speed information about a USB device that is attached to a particular port.

USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS

The USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS union is used to indicate the speed at which a USB 3.0 device is currently operating and whether it can operate at higher speed, when attached to a particular port.

Device speed information is obtained in the USB_NODE_CONNECTION_INFORMATION_EX_V2 structure by the IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 I/O control request.

Or: the speed in which a device attached to a port is currently operating and at what speeds it is capable of operating.

USB_NODE_CONNECTION_NAME

The USB_NODE_CONNECTION_NAME structure is used with the IOCTL_USB_GET_NODE_CONNECTION_NAME I/O control request to retrieve the symbolic link of the downstream hub that is attached to the port.

USB_NODE_INFORMATION

The USB_NODE_INFORMATION structure is used with the IOCTL_USB_GET_NODE_INFORMATION I/O control request to retrieve information about a parent device.

USB_PASS_THRU_PARAMETERS

The USB_PASS_THRU_PARAMETERS structure is used with the IOCTL_USB_USER_REQUEST I/O control request to pass a vendor-specific command to the host controller miniport driver.

USB_PIPE_INFO

The USB_PIPE_INFO structure is used in conjunction with the USB_NODE_CONNECTION_INFORMATION_EX structure and the IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX request to obtain information about a connection and its associated pipes.

USB_PORT_CONNECTOR_PROPERTIES

The USB_PORT_CONNECTOR_PROPERTIES structure is used with the IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES I/O control request to retrieve information about a port on a particular SuperSpeed hub.

USB_PORT_PROPERTIES

The USB_PORT_PROPERTIES union is used to report the capabilities of a USB port.

The port capabilities are retrieved in the USB_PORT_CONNECTOR_PROPERTIES structure by the IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES I/O control request.

USB_PROTOCOLS

The USB_PROTOCOLS union is used to report the USB signaling protocols that are supported by the port.

USB_POWER_INFO

The USB_POWER_INFO structure is used with the IOCTL_USB_USER_REQUEST I/O control request to retrieve device power state that the host controller power policy specifies for the indicated system power state.

USB_ROOT_HUB_NAME

The USB_ROOT_HUB_NAME structure stores the root hub's symbolic device name.

USB_STRING_DESCRIPTOR

The USB_STRING_DESCRIPTOR structure is used by USB client drivers to hold a USB-defined string descriptor.

USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR

The USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR structure is used by USB client drivers to retrieve a USB-defined SuperSpeed Endpoint Companion descriptor. For more information, see section 9.6.7 and Table 9-20 in the official USB 3.0 specification.

USB_TOPOLOGY_ADDRESS

The USB_TOPOLOGY_ADDRESS structure is used with the IOCTL_INTERNAL_USB_GET_TOPOLOGY_ADDRESS I/O request to retrieve information about a USB device?s location in the USB device tree.

USB_UNICODE_NAME

The USB_UNICODE_NAME structure contains a Unicode string that specifies a symbolic link name.

USBC_DEVICE_CONFIGURATION_INTERFACE_V1

The USBC_DEVICE_CONFIGURATION_INTERFACE_V1 structure is exposed by the vendor-supplied filter drivers to assist the USB generic parent driver in defining interface collections.

USBC_FUNCTION_DESCRIPTOR

The USBC_FUNCTION_DESCRIPTOR structure describes a USB function and its associated interface collection.

USBD_INTERFACE_INFORMATION

The USBD_INTERFACE_INFORMATION structure holds information about an interface for a configuration on a USB device.

USBD_INTERFACE_LIST_ENTRY

The USBD_INTERFACE_LIST_ENTRY structure is used by USB client drivers to create an array of interfaces to be inserted into a configuration request.

USBD_ISO_PACKET_DESCRIPTOR

The USBD_ISO_PACKET_DESCRIPTOR structure is used by USB client drivers to describe an isochronous transfer packet.

USBD_PIPE_INFORMATION

The USBD_PIPE_INFORMATION structure is used by USB client drivers to hold information about a pipe from a specific interface.

USBD_STREAM_INFORMATION

The USBD_STREAM_INFORMATION structure stores information about a stream associated with a bulk endpoint.

USBD_VERSION_INFORMATION

The USBD_VERSION_INFORMATION structure is used by the GetUSBDIVersion function to report its output data.

USBRPM_DEVICE_INFORMATION

The USBRPM_DEVICE_INFORMATION structure encapsulates the device information for USB devices available to the redirection policy manager.

USBRPM_DEVICE_LIST

The USBRPM_DEVICE_LIST structure contains the list of USB devices for which a client can load an alternate driver.

USBUSER_BANDWIDTH_INFO_REQUEST

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

USBUSER_BUS_STATISTICS_0_REQUEST

The USBUSER_BUS_STATISTICS_0_REQUEST structure is used with the IOCTL_USB_USER_REQUEST I/O control request to retrieve bus statistics.

USBUSER_CONTROLLER_UNICODE_NAME

The USBUSER_CONTROLLER_UNICODE_NAME structure is used in conjunction with the IOCTL_USB_USER_REQUEST I/O control request to retrieve the USB host controller driverkey name.

USBUSER_GET_DRIVER_VERSION

The USBUSER_GET_DRIVER_VERSION structure is used with the IOCTL_USB_USER_REQUEST I/O control request to read driver and interface version information.

USBUSER_PASS_THRU_REQUEST

The USBUSER_PASS_THRU_REQUEST structure is used in conjunction with the IOCTL_USB_USER_REQUEST I/O control request to send a vendor-specific command to the host controller miniport driver.

USBUSER_POWER_INFO_REQUEST

The USBUSER_POWER_INFO_REQUEST structure is used in conjunction with the IOCTL_USB_USER_REQUEST I/O control request to retrieve power policy information concerning the relationship of a specific system state to the power state of the host controller and the root hub.

USBUSER_REQUEST_HEADER

The USBUSER_REQUEST_HEADER structure is used with the IOCTL_USB_USER_REQUEST I/O control request to send a user-mode request to the USB host controller driver.

WINUSB_PIPE_INFORMATION

The WINUSB_PIPE_INFORMATION structure contains pipe information that the WinUsb_QueryPipe routine retrieves.

WINUSB_PIPE_INFORMATION_EX

The WINUSB_PIPE_INFORMATION_EX structure contains pipe information that the WinUsb_QueryPipeEx routine retrieves.

WINUSB_SETUP_PACKET

The WINUSB_SETUP_PACKET structure describes a USB setup packet.

 

Related topics

USB Reference

 

 

Send comments about this topic to Microsoft

Build date: 12/5/2013

Show:
© 2014 Microsoft. All rights reserved.