次の方法で共有


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_INFOSize メンバーを実際のバッファー長に設定し、STATUS_BUFFER_TOO_SMALLで要求を失敗します。 その後、ドライバーは Size で指定された長さの出力バッファーを割り当て、要求を再送信する必要があります。

要件

要件
Header usbfnioctl.h

こちらもご覧ください

IOCTL_INTERNAL_USBFN_ACTIVATE_USB_BUS

USBFN_INTERFACE_INFO