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