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.#949100923

UrbHeader.#2459134932

UrbSelectInterface.#743373123

UrbSelectInterface.#1470769654

UrbSelectConfiguration.#4000880374

UrbSelectConfiguration.#858059467

UrbPipeRequest.#3794765197

UrbPipeRequest.#1606723212

UrbFrameLengthControl.#1491362875

UrbFrameLengthControl.#2095328485

UrbGetFrameLength.#3080747407

UrbGetFrameLength.#3328914915

UrbSetFrameLength.#4081364735

UrbSetFrameLength.#1580223836

UrbGetCurrentFrameNumber.#3085983624

UrbGetCurrentFrameNumber.#3006541437

UrbControlTransfer.#387053799

UrbControlTransfer.#3868279944

UrbControlTransferEx.#2924895588

UrbControlTransferEx.#2028027655

UrbBulkOrInterruptTransfer.#1482789950

UrbBulkOrInterruptTransfer.#2163282888

UrbIsochronousTransfer.#2272798292

UrbIsochronousTransfer.#2916926180

UrbControlDescriptorRequest.#3535074641

UrbControlDescriptorRequest.#2095785667

UrbControlGetStatusRequest.#3855861271

UrbControlGetStatusRequest.#502803755

UrbControlFeatureRequest.#2381958421

UrbControlFeatureRequest.#4202213522

UrbControlVendorClassRequest.#1334659902

UrbControlVendorClassRequest.#1356033620

UrbControlGetInterfaceRequest.#1372890451

UrbControlGetInterfaceRequest.#1481961918

UrbControlGetConfigurationRequest.#1296436384

UrbControlGetConfigurationRequest.#1650082555

UrbOSFeatureDescriptorRequest.#2755328918

UrbOSFeatureDescriptorRequest.#4057717323

UrbOpenStaticStreams.#2413097726

UrbOpenStaticStreams.#3349799444

UrbGetIsochPipeTransferPathDelays.#691441213

UrbGetIsochPipeTransferPathDelays.#793792428

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