_URB_OS_FEATURE_DESCRIPTOR_REQUEST 结构 (usb.h)
USB 中心驱动程序使用 _URB_OS_FEATURE_DESCRIPTOR_REQUEST 结构从 USB 设备或 USB 设备上的接口检索 Microsoft OS 功能描述符。
语法
struct _URB_OS_FEATURE_DESCRIPTOR_REQUEST {
struct _URB_HEADER Hdr;
PVOID Reserved;
ULONG Reserved0;
ULONG TransferBufferLength;
PVOID TransferBuffer;
PMDL TransferBufferMDL;
struct _URB *UrbLink;
struct _URB_HCD_AREA hca;
UCHAR Recipient : 5;
UCHAR Reserved1 : 3;
UCHAR Reserved2;
UCHAR InterfaceNumber;
UCHAR MS_PageIndex;
USHORT MS_FeatureDescriptorIndex;
USHORT Reserved3;
};
成员
Hdr
指向指定 URB 标头信息的 _URB_HEADER 结构的指针。 hdr.Function 必须URB_FUNCTION_GET_MS_FEATURE_DESCRIPTOR。
Hdr.Length 必须为 sizeof(_URB_OS_FEATURE_DESCRIPTOR_REQUEST)
。
Reserved
Reserved0
TransferBufferLength
指定 TransferBuffer 中指定的缓冲区或 TransferBufferMDL 中所述的缓冲区的长度(以字节为单位)。 主控制器驱动程序返回在此成员中读取的字节数。 此函数的当前实现将最大 MS OS 功能描述符大小限制为 4 千字节。
TransferBuffer
指向传输的常驻缓冲区的指针;如果在 TransferBufferMDL 中提供了 MDL,则为 NULL。
TransferBufferMDL
指向描述常驻缓冲区的 MDL 的指针;如果 TransferBuffer 中提供了缓冲区,则为 NULL。 必须从非分页池中分配此 MDL。
UrbLink
保留。 请勿使用。
hca
Recipient
指定接收者是 USB 设备还是 USB 设备上的接口。 必须指定以下值之一:
- 0 表示 USB 设备是请求的接收方。
- 1 指示 USB 接口是请求的接收方。
- 2 指示 USB 终结点是请求的接收方。
Reserved1
Reserved2
InterfaceNumber
如果 Recipient 成员值为 1,则指示作为请求接收 方的 接口编号。 如果 USB 设备是接收方,则必须设置为 0。
MS_PageIndex
必须设置为 0。 要返回的 MS OS 功能描述符的 64K 页的页索引。 当前实现仅支持最大描述符大小 4K。
MS_FeatureDescriptorIndex
要请求的 MS OS 功能描述符的索引。
Reserved3
注解
此结构的保留成员必须被视为不透明成员,并保留供系统使用。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows XP 和更高版本的操作系统中可用。 |
标头 | usb.h (包括 Usb.h) |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈