URB structure
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.
Syntax
typedef struct _URB { union { struct _URB_HEADER UrbHeader; struct _URB_SELECT_INTERFACE UrbSelectInterface; struct _URB_SELECT_CONFIGURATION UrbSelectConfiguration; struct _URB_PIPE_REQUEST UrbPipeRequest; struct _URB_FRAME_LENGTH_CONTROL UrbFrameLengthControl; struct _URB_GET_FRAME_LENGTH UrbGetFrameLength; struct _URB_SET_FRAME_LENGTH UrbSetFrameLength; struct _URB_GET_CURRENT_FRAME_NUMBER UrbGetCurrentFrameNumber; struct _URB_CONTROL_TRANSFER UrbControlTransfer; struct _URB_CONTROL_TRANSFER_EX UrbControlTransferEx; struct _URB_CONTROL_TRANSFER_EX UrbControlTransferEx; struct _URB_BULK_OR_INTERRUPT_TRANSFER UrbBulkOrInterruptTransfer; struct _URB_ISOCH_TRANSFER UrbIsochronousTransfer; struct _URB_CONTROL_DESCRIPTOR_REQUEST UrbControlDescriptorRequest; struct _URB_CONTROL_GET_STATUS_REQUEST UrbControlGetStatusRequest; struct _URB_CONTROL_FEATURE_REQUEST UrbControlFeatureRequest; struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST UrbControlVendorClassRequest; struct _URB_CONTROL_GET_INTERFACE_REQUEST UrbControlGetInterfaceRequest; struct _URB_CONTROL_GET_CONFIGURATION_REQUEST UrbControlGetConfigurationRequest; struct _URB_OS_FEATURE_DESCRIPTOR_REQUEST UrbOSFeatureDescriptorRequest; struct _URB_OPEN_STATIC_STREAMS UrbOpenStaticStreams; }; } URB, *PURB;
Members
- UrbHeader
-
Provides basic information about the request being sent to the host controller driver. For more information, see _URB_HEADER.
- UrbSelectInterface
-
Defines the format of a select interface command for a USB device. For more information, see _URB_SELECT_INTERFACE.
- UrbSelectConfiguration
-
Defines the format of a select configuration command for a USB device. For more information, see _URB_SELECT_CONFIGURATION.
- UrbPipeRequest
-
Defines the format for a command for a pipe in a USB endpoint. For more information, see _URB_PIPE_REQUEST.
- UrbFrameLengthControl
-
Deprecated in Windows 2000 and later operating systems and is not supported by Microsoft. Do not use.
- UrbGetFrameLength
-
Deprecated in Windows 2000 and later operating systems and is not supported by Microsoft. Do not use.
- UrbSetFrameLength
-
Deprecated in Windows 2000 and later operating systems and is not supported by Microsoft. Do not use.
- UrbGetCurrentFrameNumber
-
Defines the format for a command to get the current frame number on a USB bus. For more information, see _URB_GET_CURRENT_FRAME_NUMBER.
- UrbControlTransfer
-
Defines the format for a command to transmit or receive data on a control pipe. For more information, see _URB_CONTROL_TRANSFER.
- UrbControlTransferEx
-
Defines the format for a command to transmit or receive data on a control pipe. For more information, see _URB_CONTROL_TRANSFER_EX.
- UrbControlTransferEx
-
Defines the format for a command to transmit or receive data on a control pipe.
- UrbBulkOrInterruptTransfer
-
Defines the format for a command to transmit or receive data on a bulk pipe, or to receive data from an interrupt pipe. For more information, see _URB_BULK_OR_INTERRUPT_TRANSFER.
- UrbIsochronousTransfer
-
Defines the format of an isochronous transfer to a USB device. For more information, see _URB_ISOCH_TRANSFER.
- UrbControlDescriptorRequest
-
Defines the format for a command to retrieve or set descriptor(s) on a USB device. For more information, see _URB_CONTROL_DESCRIPTOR_REQUEST.
- UrbControlGetStatusRequest
-
Defines the format for a command to get status from a device, interface, or endpoint. For more information, see _URB_CONTROL_GET_STATUS_REQUEST.
- UrbControlFeatureRequest
-
Defines the format for a command to set or clear USB-defined features on an device, interface, or endpoint. For more information, see _URB_CONTROL_FEATURE_REQUEST.
- UrbControlVendorClassRequest
-
Defines the format for a command to send or receive a vendor or class-specific request on a device, interface, endpoint, or other device-defined target. For more information, see _URB_CONTROL_VENDOR_OR_CLASS_REQUEST.
- UrbControlGetInterfaceRequest
-
Defines the format for a command to get the current alternate interface setting for a selected interface. For more information, see _URB_CONTROL_GET_INTERFACE_REQUEST.
- UrbControlGetConfigurationRequest
-
Defines the format for a command to get the current configuration for a device. For more information, see _URB_CONTROL_GET_CONFIGURATION_REQUEST.
- UrbOSFeatureDescriptorRequest
-
Defines the format for a command to request a Microsoft OS Descriptor. For more information, see _URB_OS_FEATURE_DESCRIPTOR_REQUEST.
- UrbOpenStaticStreams
-
Defines the format for a command to open streams in a bulk endpoint of a USB 3.0 device. For more information, see _URB_OPEN_STATIC_STREAMS and How to Open and Close Static Streams in a USB Bulk Endpoint.
Remarks
For information about the function codes to set in each structure, see _URB_HEADER.
Requirements
Header |
|
---|
See also
Send comments about this topic to Microsoft
Build date: 12/5/2013