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

Members

UrbHeader.#949100924

UrbHeader.#2459134934

UrbSelectInterface.#743373126

UrbSelectInterface.#1470769658

UrbSelectConfiguration.#4000880379

UrbSelectConfiguration.#858059473

UrbPipeRequest.#3794765204

UrbPipeRequest.#1606723220

UrbFrameLengthControl.#1491362884

UrbFrameLengthControl.#2095328495

UrbGetFrameLength.#3080747418

UrbGetFrameLength.#3328914927

UrbSetFrameLength.#4081364748

UrbSetFrameLength.#1580223850

UrbGetCurrentFrameNumber.#3085983639

UrbGetCurrentFrameNumber.#3006541453

UrbControlTransfer.#387053816

UrbControlTransfer.#3868279962

UrbControlTransferEx.#2924895607

UrbControlTransferEx.#2028027675

UrbBulkOrInterruptTransfer.#1482789971

UrbBulkOrInterruptTransfer.#2163282910

UrbIsochronousTransfer.#2272798315

UrbIsochronousTransfer.#2916926204

UrbControlDescriptorRequest.#3535074666

UrbControlDescriptorRequest.#2095785693

UrbControlGetStatusRequest.#3855861298

UrbControlGetStatusRequest.#502803783

UrbControlFeatureRequest.#2381958450

UrbControlFeatureRequest.#4202213552

UrbControlVendorClassRequest.#1334659933

UrbControlVendorClassRequest.#1356033652

UrbControlGetInterfaceRequest.#1372890484

UrbControlGetInterfaceRequest.#1481961952

UrbControlGetConfigurationRequest.#1296436419

UrbControlGetConfigurationRequest.#1650082591

UrbOSFeatureDescriptorRequest.#2755328955

UrbOSFeatureDescriptorRequest.#4057717361

UrbOpenStaticStreams.#2413097765

UrbOpenStaticStreams.#3349799484

UrbGetIsochPipeTransferPathDelays.#691441254

UrbGetIsochPipeTransferPathDelays.#793792470

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