IOCTL_INTERNAL_USBFN_GET_INTERFACE_DESCRIPTOR_SET IOCTL (usbfnioctl.h)
クラス ドライバーは、デバイス上の関数の USB インターフェイス記述子セット全体を取得するために、この要求を送信します。
メジャー コード
IRP_MJ_INTERNAL_DEVICE_CONTROL
[入力バッファー]
USBFN_INTERFACE_INFO構造体を含むバッファーへのポインター。
入力バッファーの長さ
入力バッファーの長さは、少なくとも sizeof(USBFN_INTERFACE_INFO)
である必要があります。
出力バッファー
USBFN_INTERFACE_INFO構造体を含むバッファーへのポインター。 USB 関数クラス拡張機能 (UFX) は、エンドポイント記述子を含むインターフェイス記述子セット全体を構造体に設定します。
出力バッファーの長さ
出力バッファーの長さは、少なくとも sizeof(USBFN_INTERFACE_INFO)
である必要があります。
ステータス ブロック
要求が成功した場合、USB 関数クラス拡張機能 (UFX) は、STATUS_SUCCESS、またはNT_SUCCESS(status) が TRUE に等しい別の状態値を返します。 それ以外の場合は、NT_SUCCESS(status) が FALSE の状態値を返します。
注釈
この要求は、IOCTL_INTERNAL_USBFN_ACTIVATE_USB_BUS要求を送信した後 に 送信する必要があります。
インターフェイス記述子全体の長さは可変です。 クラス ドライバーは、記述子セット全体を取得するために、この IOCTL 要求を 2 回送信する必要がある場合があります。
記述子セット全体の長さが指定した出力バッファー長を超える場合、UFX は USBFN_INTERFACE_INFO の Size メンバーを実際のバッファー長に設定し、STATUS_BUFFER_TOO_SMALLで要求を失敗します。 その後、ドライバーは Size で指定された長さの出力バッファーを割り当て、要求を再送信する必要があります。
要件
要件 | 値 |
---|---|
Header | usbfnioctl.h |