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,则输出缓冲区必须足够大,以容纳与当前配置关联的所有描述符,否则请求将失败。

要求

要求
Header usbioctl.h (包括 Usbioctl.h)

另请参阅

IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION

USB 结构