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 で指定された長さの出力バッファーを割り当て、要求を再送信する必要があります。
必要条件
要件 | 価値 |
---|---|
ヘッダー | usbfnioctl.h |