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

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.

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.

UCMTCPCI_DEVICE_CONFIG

Used in the client driver's call to UcmTcpciDeviceInitialize. Call UCMTCPCI_DEVICE_CONFIG_INIT to initialize this structure.

UCMTCPCI_PORT_CONTROLLER_CONFIG

Contains configuration options for the port controller object, passed by the client driver in the call to UcmTcpciPortControllerCreate. Call UCMTCPCI_PORT_CONTROLLER_CONFIG_INIT to initialize this structure.

UCMTCPCI_PORT_CONTROLLER_ALERT_DATA

Contains information about hardware alerts received on the port controller object. This structure is used in the UcmTcpciPortControllerAlert call. Call UCMTCPCI_PORT_CONTROLLER_ALERT_DATA_INIT to initialize this structure.

UCMTCPCI_DRIVER_GLOBALS

The global structure for the USB Type-C Port Controller Interface framework extension (UcmTcpciCx).

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_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.

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_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.

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.

UDECX_ENDPOINTS_CONFIGURE_PARAMS

Contains the configuration options specified by USB device emulation class extension (UdeCx) to the client driver when the class extension invokes EVT_UDECX_USB_DEVICE_ENDPOINTS_CONFIGURE.

UDECX_USB_DEVICE_STATE_CHANGE_CALLBACKS

Initializes a UDECX_USB_DEVICE_STATE_CHANGE_CALLBACKS structure with pointers to callback functions that are implemented by a UDE client for a virtual USB device.

UDECX_USB_DEVICE_PLUG_IN_OPTIONS

Contains the port numbers to which a virtual USB device is connected. Initialize this structure by calling the UDECX_USB_DEVICE_PLUG_IN_OPTIONS_INIT method.

UDECX_USB_ENDPOINT_CALLBACKS

Contains function pointers to endpoint callback functions implemented by the UDE client driver. Initialize this structure by calling UDECX_USB_ENDPOINT_CALLBACKS_INIT.

UDECX_USB_ENDPOINT_INIT_AND_METADATA

Contains the descriptors supported by an endpoint of a virtual USB device.

UDECX_WDF_DEVICE_CONFIG

Contains pointers to event callback functions implemented by the UDE client driver for a USB host controller. Initialize this structure by calling UDECX_WDF_DEVICE_CONFIG_INIT.

URS_CONFIG

Contains pointers to event callback functions implemented by the URS client driver for a USB dual-role controller. Initialize this structure by calling URS_CONFIG_INIT.

ADDRESS0_OWNERSHIP_ACQUIRE

Contains parameters for configuring the device.

DEFAULT_ENDPOINT_UPDATE

Contains the handle to the default endpoint to update in a framework request that is passed by UCX when it invokes EVT_UCX_DEFAULT_ENDPOINT_UPDATE callback function.

ENDPOINTS_CONFIGURE

Describes endpoints to enable or disable endpoints. This structure is passed by UCX in the EVT_UCX_USBDEVICE_ENDPOINTS_CONFIGURE callback function.

ENDPOINTS_CONFIGURE_FAILURE_FLAGS

This structure provides failure flags to indicate errors, if any, that might have occurred during a request to an EVT_UCX_USBDEVICE_ENDPOINTS_CONFIGURE callback function.

ENDPOINT_RESET

Describes information required to reset an endpoint. This structure is passed by UCX in the EVT_UCX_ENDPOINT_RESET callback function.

UCM_CONNECTOR_TYPEC_CONFIG

Describes the configuration options for a Type-C connector.

UCM_CONNECTOR_PD_CONFIG

Describes the Power Delivery 2.0 capabilities of the connector.

UCM_CONNECTOR_CONFIG

Describes the configuration options for a Type-C connector object. An initialized UCM_MANAGER_CONFIG structure is an input parameter value to UcmInitializeDevice.

UCM_CONNECTOR_TYPEC_ATTACH_PARAMS

Describes the partner that is currently attached to the connector.

UCM_CONNECTOR_PD_CONN_STATE_CHANGED_PARAMS

Describes the parameters for PD connection changed event.

UCM_MANAGER_CONFIG

Describes the configuration options for the UCM Manager. An initialized UCM_MANAGER_CONFIG structure is an input parameter value to UcmInitializeDevice.

UCM_PD_POWER_DATA_OBJECT

Describes a Power Data Object. For information about these members, see the Power Delivery specification.

UCM_PD_REQUEST_DATA_OBJECT

Describes a Request Data Object (RDO). For information about these members, see the Power Delivery specification.

USBDEVICE_ABORTIO

Contains a handle for the USB hub or device for which to abort data transfers.

USBDEVICE_ADDRESS

Contains parameters for a request to transition the specified device to the Addressed state. This structure is passed by UCX in request parameters (Parameters.Others.Arg1) of a framework request object of the EVT_UCX_USBDEVICE_ADDRESS callback function.

USBDEVICE_DISABLE

Contains parameters for a request to disable the specified device. This structure is passed by UCX in request parameters (Parameters.Others.Arg1) of a framework request object of the EVT_UCX_USBDEVICE_DISABLE callback function.

USBDEVICE_ENABLE_FAILURE_FLAGS

The flags that are set by the client driver in the EVT_UCX_USBDEVICE_ENABLE callback function. Indicate errors, if any, that might have occurred while enabling the device.

USBDEVICE_ENABLE

Contains parameters for a request to enable the specified device. This structure is passed by UCX in request parameters (Parameters.Others.Arg1) of a framework request object of the EVT_UCX_USBDEVICE_ENABLE callback function.

USBDEVICE_HUB_INFO

Contains parameters for a request to get information about the specified hub. This structure is passed by UCX in request parameters (Parameters.Others.Arg1) of a framework request object of the EVT_UCX_USBDEVICE_HUB_INFO callback function.

USBDEVICE_MGMT_HEADER

This structure provides a handle for the USB hub or device physically connected to the bus.

USB_DEVICE_PORT_PATH

Contains the port path of a USB device.

USBDEVICE_PURGEIO

The USBDEVICE_PURGEIO structure contains the handle for the USB hub or device to purge I/O for.

USBDEVICE_RESET

Contains parameters for a request to reset the specified device. This structure is passed by UCX in request parameters (Parameters.Others.Arg1) of a framework request object of the EVT_UCX_USBDEVICE_RESET callback function.

USBDEVICE_STARTIO

Contains a handle for the USB hub or device on which to start data transfer.

USBDEVICE_TREE_PURGEIO

This structure provides the handle for the USB device tree to purge I/O for.

USBDEVICE_UPDATE_20_HARDWARE_LPM_PARAMETERS

Contains parameters for a request to update USB 2.0 link power management (LPM). UCX passes this structure in the EVT_UCX_USBDEVICE_UPDATE callback function.

USBDEVICE_UPDATE

Passed by UCX to update the specified device. This structure is in the request parameters (Parameters.Others.Arg1) of a framework request object passed in the EVT_UCX_USBDEVICE_UPDATE callback function.

USBDEVICE_UPDATE_FAILURE_FLAGS

The flags that are set by the client driver in the EVT_UCX_USBDEVICE_UPDATE callback function. Indicate errors, if any, that might have occurred while updating the device.

USBDEVICE_UPDATE_FLAGS

Contains request flags set by UCX that is passed in the USBDEVICE_UPDATE structure when UCX invokes the client driver's EVT_UCX_USBDEVICE_UPDATE callback function.

HUB_INFO_FROM_PARENT

Describes information about a hub from its parent device.

ROOTHUB_INFO

Provides information about a USB root hub. This structure is passed by UCX in the EVT_UCX_ROOTHUB_GET_INFO callback function.

ROOTHUB_20PORT_INFO

Provides information about a USB 2.0 root hub port. This structure is passed by UCX in the EVT_UCX_ROOTHUB_GET_20PORT_INFO callback function.

ROOTHUB_20PORTS_INFO

This structure that has an array of 2.0 ports supported by the root hub. This structure is provided by UCX in a framework request in the EVT_UCX_ROOTHUB_GET_20PORT_INFO callback function.

ROOTHUB_30PORT_INFO

Provides information about a USB 3.0 root hub port. This structure is passed by UCX in the EVT_UCX_ROOTHUB_GET_30PORT_INFO callback function.

ROOTHUB_30PORT_INFO_EX

Provides extended USB 3.0 port information about speed.

ROOTHUB_30PORTS_INFO

Provides information about USB 3.0 root hub ports. This structure is passed by UCX in the EVT_UCX_ROOTHUB_GET_30PORT_INFO callback function.

STREAM_INFO

This structure stores information about a stream associated with a bulk endpoint.

CONTROLLER_USB_20_HARDWARE_LPM_FLAGS

Describes supported protocol capabilities for Link Power Management (LPM) in as defined the USB 2.0 specification.

PARENT_HUB_FLAGS

This structure is used by the HUB_INFO_FROM_PARENT structure to get hub information from the parent.

USBFN_CLASS_INTERFACE_EX

Describes an interface and its endpoints.

USBFN_POWER_FILTER_STATE

Reserved. Do not use.

 

Related topics

USB Reference

 

 

Send comments about this topic to Microsoft

Show: