usb.h) (URB 结构
URB 结构由 USB 客户端驱动程序用来描述向 USB 驱动程序堆栈发送请求 (URB) USB 请求块。 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 设备的 select 配置命令的格式。 有关详细信息,请参阅 _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) |