次の方法で共有


IOCTL_GENERICUSBFN_GET_INTERFACE_DESCRIPTOR_SET IOCTL (genericusbfnioctl.h)

この I/O 制御コード (IOCTL) は、デバイス上の関数に設定されたユニバーサル シリアル バス (USB) インターフェイス記述子全体を取得するために、ユーザー モード サービスまたはアプリケーションによって送信されます。

メモ この IOCTL 要求では、デバイス全体のインターフェイス記述子セットは取得されません。

 

[入力バッファー]

USBFN_INTERFACE_INFO構造体へのポインター。

入力バッファーの長さ

USBFN_INTERFACE_INFO構造体のサイズ。

出力バッファー

USBFN_INTERFACE_INFO構造体を含むバッファーへのポインター。 USB 関数クラス拡張機能 (UFX) は、エンドポイント記述子を含むインターフェイス記述子セット全体を構造体に設定します。

出力バッファーの長さ

USBFN_INTERFACE_INFOのサイズ。

注釈

この要求は、 IOCTL_GENERICUSBFN_ACTIVATE_USB_BUS 要求を送信した後に送信する必要があります。

インターフェイス記述子全体の長さは可変です。 クラス ドライバーは、記述子セット全体を取得するために、この IOCTL 要求を 2 回送信する必要がある場合があります。

記述子セット全体の長さが指定された出力バッファー長を超える場合、UFX は USBFN_INTERFACE_INFOSize メンバーを実際のバッファー長に設定し、STATUS_BUFFER_TOO_SMALLで要求を失敗します。 その後、ドライバーは Size で指定された長さの出力バッファーを割り当て、要求を再送信する必要があります。

この I/O 制御コード (IOCTL) が同期的に呼び出されている場合は、 lpOverlapped パラメーターを NULL に設定します。 この IOCTL が非同期的に呼び出される場合は、 lpOverlapped パラメーターを、イベント オブジェクトへのハンドルを含む OVERLAPPED 構造体へのポインターに割り当てます。 イベント オブジェクトは、操作の完了時に通知します。

戻り値は、操作の成功または失敗を示す BOOL 値です。 TRUE は成功を示し、それ以外の場合は FALSE を示します。

要件

要件
Header genericusbfnioctl.h (GenericUsbFnIoctl.h を含む)

こちらもご覧ください

DeviceIoControl