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