_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 {
    _URB_HEADER                                     UrbHeader;
    struct _URB_HEADER                              UrbHeader;
    _URB_SELECT_INTERFACE                           UrbSelectInterface;
    struct _URB_SELECT_INTERFACE                    UrbSelectInterface;
    _URB_SELECT_CONFIGURATION                       UrbSelectConfiguration;
    struct _URB_SELECT_CONFIGURATION                UrbSelectConfiguration;
    _URB_PIPE_REQUEST                               UrbPipeRequest;
    struct _URB_PIPE_REQUEST                        UrbPipeRequest;
    _URB_FRAME_LENGTH_CONTROL                       UrbFrameLengthControl;
    struct _URB_FRAME_LENGTH_CONTROL                UrbFrameLengthControl;
    _URB_GET_FRAME_LENGTH                           UrbGetFrameLength;
    struct _URB_GET_FRAME_LENGTH                    UrbGetFrameLength;
    _URB_SET_FRAME_LENGTH                           UrbSetFrameLength;
    struct _URB_SET_FRAME_LENGTH                    UrbSetFrameLength;
    _URB_GET_CURRENT_FRAME_NUMBER                   UrbGetCurrentFrameNumber;
    struct _URB_GET_CURRENT_FRAME_NUMBER            UrbGetCurrentFrameNumber;
    _URB_CONTROL_TRANSFER                           UrbControlTransfer;
    struct _URB_CONTROL_TRANSFER                    UrbControlTransfer;
    _URB_CONTROL_TRANSFER_EX                        UrbControlTransferEx;
    struct _URB_CONTROL_TRANSFER_EX                 UrbControlTransferEx;
    _URB_BULK_OR_INTERRUPT_TRANSFER                 UrbBulkOrInterruptTransfer;
    struct _URB_BULK_OR_INTERRUPT_TRANSFER          UrbBulkOrInterruptTransfer;
    _URB_ISOCH_TRANSFER                             UrbIsochronousTransfer;
    struct _URB_ISOCH_TRANSFER                      UrbIsochronousTransfer;
    _URB_CONTROL_DESCRIPTOR_REQUEST                 UrbControlDescriptorRequest;
    struct _URB_CONTROL_DESCRIPTOR_REQUEST          UrbControlDescriptorRequest;
    _URB_CONTROL_GET_STATUS_REQUEST                 UrbControlGetStatusRequest;
    struct _URB_CONTROL_GET_STATUS_REQUEST          UrbControlGetStatusRequest;
    _URB_CONTROL_FEATURE_REQUEST                    UrbControlFeatureRequest;
    struct _URB_CONTROL_FEATURE_REQUEST             UrbControlFeatureRequest;
    _URB_CONTROL_VENDOR_OR_CLASS_REQUEST            UrbControlVendorClassRequest;
    struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST     UrbControlVendorClassRequest;
    _URB_CONTROL_GET_INTERFACE_REQUEST              UrbControlGetInterfaceRequest;
    struct _URB_CONTROL_GET_INTERFACE_REQUEST       UrbControlGetInterfaceRequest;
    _URB_CONTROL_GET_CONFIGURATION_REQUEST          UrbControlGetConfigurationRequest;
    struct _URB_CONTROL_GET_CONFIGURATION_REQUEST   UrbControlGetConfigurationRequest;
    _URB_OS_FEATURE_DESCRIPTOR_REQUEST              UrbOSFeatureDescriptorRequest;
    struct _URB_OS_FEATURE_DESCRIPTOR_REQUEST       UrbOSFeatureDescriptorRequest;
    _URB_OPEN_STATIC_STREAMS                        UrbOpenStaticStreams;
    struct _URB_OPEN_STATIC_STREAMS                 UrbOpenStaticStreams;
    _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS        UrbGetIsochPipeTransferPathDelays;
    struct _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS UrbGetIsochPipeTransferPathDelays;
  };
} URB, PURB;

Members

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