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