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

__unnamed_union_0bbe_2

__unnamed_union_0bbe_2.UrbHeader.#949100923

__unnamed_union_0bbe_2.UrbHeader.#2459134932

__unnamed_union_0bbe_2.UrbSelectInterface.#743373123

__unnamed_union_0bbe_2.UrbSelectInterface.#1470769654

__unnamed_union_0bbe_2.UrbSelectConfiguration.#4000880374

__unnamed_union_0bbe_2.UrbSelectConfiguration.#858059467

__unnamed_union_0bbe_2.UrbPipeRequest.#3794765197

__unnamed_union_0bbe_2.UrbPipeRequest.#1606723212

__unnamed_union_0bbe_2.UrbFrameLengthControl.#1491362875

__unnamed_union_0bbe_2.UrbFrameLengthControl.#2095328485

__unnamed_union_0bbe_2.UrbGetFrameLength.#3080747407

__unnamed_union_0bbe_2.UrbGetFrameLength.#3328914915

__unnamed_union_0bbe_2.UrbSetFrameLength.#4081364735

__unnamed_union_0bbe_2.UrbSetFrameLength.#1580223836

__unnamed_union_0bbe_2.UrbGetCurrentFrameNumber.#3085983624

__unnamed_union_0bbe_2.UrbGetCurrentFrameNumber.#3006541437

__unnamed_union_0bbe_2.UrbControlTransfer.#387053799

__unnamed_union_0bbe_2.UrbControlTransfer.#3868279944

__unnamed_union_0bbe_2.UrbControlTransferEx.#2924895588

__unnamed_union_0bbe_2.UrbControlTransferEx.#2028027655

__unnamed_union_0bbe_2.UrbBulkOrInterruptTransfer.#1482789950

__unnamed_union_0bbe_2.UrbBulkOrInterruptTransfer.#2163282888

__unnamed_union_0bbe_2.UrbIsochronousTransfer.#2272798292

__unnamed_union_0bbe_2.UrbIsochronousTransfer.#2916926180

__unnamed_union_0bbe_2.UrbControlDescriptorRequest.#3535074641

__unnamed_union_0bbe_2.UrbControlDescriptorRequest.#2095785667

__unnamed_union_0bbe_2.UrbControlGetStatusRequest.#3855861271

__unnamed_union_0bbe_2.UrbControlGetStatusRequest.#502803755

__unnamed_union_0bbe_2.UrbControlFeatureRequest.#2381958421

__unnamed_union_0bbe_2.UrbControlFeatureRequest.#4202213522

__unnamed_union_0bbe_2.UrbControlVendorClassRequest.#1334659902

__unnamed_union_0bbe_2.UrbControlVendorClassRequest.#1356033620

__unnamed_union_0bbe_2.UrbControlGetInterfaceRequest.#1372890451

__unnamed_union_0bbe_2.UrbControlGetInterfaceRequest.#1481961918

__unnamed_union_0bbe_2.UrbControlGetConfigurationRequest.#1296436384

__unnamed_union_0bbe_2.UrbControlGetConfigurationRequest.#1650082555

__unnamed_union_0bbe_2.UrbOSFeatureDescriptorRequest.#2755328918

__unnamed_union_0bbe_2.UrbOSFeatureDescriptorRequest.#4057717323

__unnamed_union_0bbe_2.UrbOpenStaticStreams.#2413097726

__unnamed_union_0bbe_2.UrbOpenStaticStreams.#3349799444

__unnamed_union_0bbe_2.UrbGetIsochPipeTransferPathDelays.#691441213

__unnamed_union_0bbe_2.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