USB_DESCRIPTOR_REQUEST结构(usbioctl.h)

USB_DESCRIPTOR_REQUEST 结构与 IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION I/O 控制请求一起使用,以检索与指示的连接索引关联的设备的一个或多个描述符。 此结构中的字段在 USB 文档库提供的通用串行总线 3.1 规范中介绍。

语法

typedef struct _USB_DESCRIPTOR_REQUEST {
  ULONG  ConnectionIndex;
  struct {
    UCHAR  bmRequest;
    UCHAR  bRequest;
    USHORT wValue;
    USHORT wIndex;
    USHORT wLength;
  } SetupPacket;
  UCHAR  Data[0];
} USB_DESCRIPTOR_REQUEST, *PUSB_DESCRIPTOR_REQUEST;

成员

ConnectionIndex

检索其描述符的端口。

SetupPacket

根据官方规范定义的 SetupPacket 结构的成员。 请参阅第 9.3 节。

SetupPacket.bmRequest

USB 设备请求的类型(标准、类或供应商)、数据传输方向以及数据接收方(设备、接口或终结点)的类型。 在输入到 IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION I/O 控制请求时,USB 堆栈将忽略 bmRequest 的值,并插入0x80值。 此值指示标准 USB 设备请求和设备到主机数据传输。

SetupPacket.bRequest

请求编号。 在输入 IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION I/O 控制请求时,USB 堆栈将忽略 bRequest 的值,并插入0x06值。 此值指示 GET_DESCRIPTOR的请求。

SetupPacket.wValue

在输入到 IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION I/O 控件请求时,调用方应指定要在 wValue 的高字节和低字节中的描述符索引中检索的描述符类型。 下表列出了可能的描述符类型。 这些常量类型在 Windows 驱动程序工具包中包含的 Usbspec.h 标头中定义。

描述符类型 意义
USB_DEVICE_DESCRIPTOR_TYPE 指示 USB 堆栈返回设备描述符。
USB_CONFIGURATION_DESCRIPTOR_TYPE 指示 USB 堆栈返回与当前配置关联的配置描述符以及所有接口、终结点、特定于类和供应商特定的描述符。
USB_STRING_DESCRIPTOR_TYPE 指示 USB 堆栈返回指示的字符串描述符。
USB_INTERFACE_DESCRIPTOR_TYPE 指示 USB 堆栈返回指示的接口描述符。
USB_ENDPOINT_DESCRIPTOR_TYPE 指示 USB 堆栈返回指示的终结点描述符。

SetupPacket.wIndex

要检索的描述符的设备特定索引。

SetupPacket.wLength

在控制传输的第二阶段传输的数据的长度。

Data[0]

IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION I/O 控件请求的输出中,此成员包含检索到的描述符。

言论

如果调用方在 wValue 成员中指定USB_CONFIGURATION_DESCRIPTOR_TYPE值,则输出缓冲区必须足够大,才能容纳与当前配置关联的所有描述符,否则请求将失败。

要求

要求 价值
标头 usbioctl.h (包括 Usbioctl.h)

另请参阅

IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION

USB 结构