urB 结构 (usb.h)

USB 客户端驱动程序使用 URB 结构来描述将请求发送到 USB 驱动程序堆栈的 USB 请求块 (URB) 。 URB 结构为可以发送到 USB 设备的所有可能命令定义格式。

语法

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;

成员

UrbHeader

提供有关要发送到主机控制器驱动程序的请求的基本信息。 有关详细信息,请参阅 _URB_HEADER

UrbSelectInterface

定义 USB 设备的选择接口命令的格式。 有关详细信息,请参阅 _URB_SELECT_INTERFACE

UrbSelectConfiguration

定义 USB 设备的选择配置命令的格式。 有关详细信息,请参阅 _URB_SELECT_CONFIGURATION

UrbPipeRequest

定义 USB 终结点中管道的命令的格式。 有关详细信息,请参阅 _URB_PIPE_REQUEST

UrbFrameLengthControl

在 Windows 2000 及更高版本的操作系统中弃用,Microsoft 不支持。 请勿使用。

UrbGetFrameLength

在 Windows 2000 及更高版本的操作系统中弃用,Microsoft 不支持。 请勿使用。

UrbSetFrameLength

在 Windows 2000 及更高版本的操作系统中弃用,Microsoft 不支持。 请勿使用。

UrbGetCurrentFrameNumber

定义命令获取 USB 总线上的当前帧编号的格式。 有关详细信息,请参阅 _URB_GET_CURRENT_FRAME_NUMBER

UrbControlTransfer

定义命令在控制管道上传输或接收数据的格式。 有关详细信息,请参阅 _URB_CONTROL_TRANSFER

UrbControlTransferEx

定义命令在控制管道上传输或接收数据的格式。 有关详细信息,请参阅 _URB_CONTROL_TRANSFER_EX

定义命令在控制管道上传输或接收数据的格式。

UrbBulkOrInterruptTransfer

定义命令在大容量管道上传输或接收数据或从中断管道接收数据的格式。 有关详细信息,请参阅 _URB_BULK_OR_INTERRUPT_TRANSFER

UrbIsochronousTransfer

定义向 USB 设备进行不时传输的格式。 有关详细信息,请参阅 _URB_ISOCH_TRANSFER

UrbControlDescriptorRequest

定义命令在 USB 设备上检索或设置描述符 () 的格式。 有关详细信息,请参阅 _URB_CONTROL_DESCRIPTOR_REQUEST

UrbControlGetStatusRequest

定义命令从设备、接口或终结点获取状态的格式。 有关详细信息,请参阅 _URB_CONTROL_GET_STATUS_REQUEST

UrbControlFeatureRequest

定义命令在设备、接口或终结点上设置或清除 USB 定义功能的格式。 有关详细信息,请参阅 _URB_CONTROL_FEATURE_REQUEST

UrbControlVendorClassRequest

定义命令在设备、接口、终结点或其他设备定义目标上发送和接收供应商或特定于类的请求的格式。 有关详细信息,请参阅 _URB_CONTROL_VENDOR_OR_CLASS_REQUEST

UrbControlGetInterfaceRequest

定义命令的格式,以获取所选接口的当前备用接口设置。 有关详细信息,请参阅 _URB_CONTROL_GET_INTERFACE_REQUEST

UrbControlGetConfigurationRequest

定义命令获取设备的当前配置的格式。 有关详细信息,请参阅 _URB_CONTROL_GET_CONFIGURATION_REQUEST

UrbOSFeatureDescriptorRequest

定义命令请求 Microsoft OS 描述符的格式。 有关详细信息,请参阅 _URB_OS_FEATURE_DESCRIPTOR_REQUEST

UrbOpenStaticStreams

定义命令在 USB 3.0 设备的批量终结点中打开流的格式。 有关详细信息,请参阅 _URB_OPEN_STATIC_STREAMS 以及如何 在 USB 大容量终结点中打开和关闭静态流

UrbGetIsochPipeTransferPathDelays

定义命令的格式,以检索与主机控制器中的不时序传输编程关联的延迟,并传输完成,以便客户端驱动程序可以确保设备及时获取不时序数据包。 有关详细信息,请参阅 _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS

注解

有关在每个结构中设置的函数代码的信息,请参阅 _URB_HEADER

要求

   
Header usb.h (包括 Usb.h)

另请参阅

IOCTL_INTERNAL_USB_SUBMIT_URB

USB 结构