_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)

另请参阅

URB

_URB_HEADER