_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

指示作为请求的收件人的接口号(如果 收件人 成员值为 1)。 如果 USB 设备是收件人,则必须设置为 0。

MS_PageIndex

必须设置为 0。 要返回的 MS OS 功能描述符的 64K 页的页面索引。 当前实现仅支持最大描述符大小 4K。

MS_FeatureDescriptorIndex

要请求的 MS OS 功能描述符的索引。

Reserved3

注解

此结构的保留成员必须被视为不透明,并保留供系统使用。

要求

   
最低受支持的客户端 在 Windows XP 和更高版本的操作系统中可用。
Header usb.h (包括 Usb.h)

另请参阅

URB

_URB_HEADER