USB_DESCRIPTOR_REQUEST構造体 (usbioctl.h)
USB_DESCRIPTOR_REQUEST 構造体は、IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION I/O 制御要求と共に使用され、指定された接続インデックスに関連付けられているデバイスの 1 つ以上の記述子を取得します。 この構造体のフィールドは、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 Driver Kit に含まれる 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
制御転送の第 2 フェーズ中に転送されるデータの長さ。
Data[0]
IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION I/O 制御要求からの出力では、このメンバーには取得された記述子が含まれます。
備考
呼び出し元が wValue メンバーのUSB_CONFIGURATION_DESCRIPTOR_TYPEの値を指定する場合、出力バッファーは、現在の構成に関連付けられているすべての記述子を保持するのに十分な大きさである必要があります。そうしないと、要求は失敗します。
必要条件
要件 | 価値 |
---|---|
ヘッダー | usbioctl.h (Usbioctl.h を含む) |