次の方法で共有


IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION IOCTL (gpio.h)

IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION I/O 制御コードを使用すると、汎用 I/O (GPIO) コントローラーのクライアントがコントローラー固有のデバイス制御操作を要求できます。 通常、GPIO コントローラーのクライアントは、GPIO ピンに接続される周辺機器のドライバーです。

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

この I/O 制御コードの入力バッファー要件は、GPIO コントローラー ドライバーの開発者によって定義されます。 METHOD_BUFFERED IRP の入力バッファーの詳細については、「 I/O コントロール コードのバッファーの説明」を参照してください。

出力バッファー

この I/O 制御コードの出力バッファー要件は、GPIO コントローラー ドライバーの開発者によって定義されます。 METHOD_BUFFERED IRP の出力バッファーの詳細については、「 I/O 制御コードのバッファーの説明」を参照してください。

ステータス ブロック

操作が成功した場合、GPIO コントローラー ドライバーは Status メンバーをSTATUS_SUCCESSに設定し、 Information メンバーを出力バッファーに書き込まれた合計バイト数に設定します。 操作で出力データが生成されない場合、または出力データ ポインターが NULL の場合、 Information メンバーは 0 に設定されます。

入力バッファーが入力パラメーターを格納するのに十分な大きさではない場合、または出力バッファーがコントローラー固有の操作の出力パラメーターを格納するのに十分な大きさでない場合、 Status メンバーは STATUS_BUFFER_TOO_SMALL に設定されます。

この要求が失敗した場合、 Status メンバーはエラー コードに設定され、 Information メンバーは 0 に設定されます。

GPIO コントローラー ドライバーがコントローラー固有の操作をサポートしていない場合、 Status メンバーは STATUS_NOT_IMPLEMENTED に設定されます。 GPIO コントローラー ドライバーがコントローラー固有の操作をサポートしていても、入力バッファーの内容が有効であると認識されない場合、 Status メンバーは STATUS_NOT_SUPPORTED に設定されます。

注釈

一般的な GPIO コントローラーでは 、IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION 要求はサポートされていません。 ただし、コントローラー ドライバー開発者には、特定のハードウェア プラットフォーム上の GPIO コントローラーの特別な要件または機能に対処するために、1 つ以上のコントローラー固有の操作を定義するオプションがあります。

特定の種類の GPIO コントローラー ハードウェアでサポートされているコントローラー固有の操作を認識している周辺機器ドライバーのみが、 IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION 要求を使用してこれらの操作を実行できます。 これらの要求を使用して 1 つのハードウェア プラットフォームでコントローラー固有の操作を実行する周辺機器ドライバーは、これらの操作をサポートしていない他のプラットフォームとの互換性が失われるリスクがあります。

IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION制御コードの意味は、GPIO コントローラー ドライバーの開発者によって定義されます。 通常、コントローラー ドライバーは、このコントロール コードを使用して、周辺機器ドライバーが、デバイスが接続されている GPIO ピンに対してハードウェア固有の操作を実行できるようにします。

たとえば、 IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION 要求への入力バッファーには、コントローラー定義のコマンド コードといくつかの入力パラメーターが含まれている場合があります。 GPIO コントローラー ドライバーは、コマンド コードに応じて、出力バッファーにデータを書き込む場合と書き込まない場合があります。

周辺機器ドライバーは、ターゲット GPIO デバイスのファイル オブジェクトにこの I/O 制御要求を送信します。 ファイル オブジェクト は、GPIO コントローラー上のピンのセットへの開いている接続を表すFILE_OBJECT構造体です。 カーネル モード ドライバー フレームワーク (KMDF) ドライバーは、WDFIOTARGET ハンドルを使用して、このファイル オブジェクトを参照します。

要件

要件
サポートされている最小のクライアント Windows 8 以降でサポートされています。
Header gpio.h

こちらもご覧ください

FILE_OBJECT