_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

指向传输的常驻缓冲区的指针;如果 MDL 在 transferBufferMDL中提供,则为 NULL null

TransferBufferMDL

指向描述常驻缓冲区的 MDL 的指针;如果缓冲区 在 transferBuffer中提供缓冲区,则为 NULL 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 和更高版本的作系统中可用。
标头 usb.h (包括 Usb.h)

另请参阅

URB

_URB_HEADER