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