URB
Expand Minimize

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

Usb.h (include Usb.h)

See also

IOCTL_INTERNAL_USB_SUBMIT_URB
USB Structures

 

 

Send comments about this topic to Microsoft

Build date: 12/5/2013

Show:
© 2014 Microsoft. All rights reserved.