GPIO ベースの割り込みリソース
汎用 I/O (GPIO) ピンに割り込みを送信する周辺機器のドライバーは、抽象 Windows 割り込みリソースとして GPIO 割り込みを取得します。 カーネル モード ドライバー フレームワーク (KMDF) ドライバーとユーザー モード ドライバー フレームワーク (UMDF) ドライバーは、EvtDevicePrepareHardware イベント コールバック関数を通じてこれらのリソースを受け取ります。
GPIO ベースの割り込みリソースを使用する周辺機器ドライバーは、割り込みコントローラーまたはプロセッサ チップの割り込みピンの代わりに GPIO ピンによって割り込みが生成されるかどうかなど、低レベルの実装の詳細を無視できます。
GPIO ベースの割り込みは、CmResourceTypeInterrupt 型のリソースです。 この割り込みの構成パラメーターは、割り込みリソースを記述する CM_PARTIAL_RESOURCE_DESCRIPTOR 構造体の u.Interrupt メンバーに含まれています。 割り込みサービス ルーチン (ISR) を割り込みに接続するには、UMDF または KMDF ドライバーは、割り込みリソースの未加工および翻訳された記述の両方を割り込み作成メソッドに提供します。
周辺機器の KMDF または UMDF ドライバーは、WdfInterruptCreate メソッドを呼び出して、ISR をデバイスからの割り込みに接続します。 このメソッドへの入力パラメーターの 1 つは、割り込みの構成情報を含む WDF_INTERRUPT_CONFIG 構造体へのポインターです。
周辺機器ドライバーが複数の GPIO 割り込みリソースを使用する場合、このドライバーは、EvtDevicePrepareHardware 関数または OnPrepareHardware メソッドへの入力パラメーターとして提供される未加工および翻訳されたリソース リストにこれらのリソースが表示される順序を認識する必要があります。 これらの一覧のリソースは、プラットフォーム ファームウェアで記述されている順序で表示されます。これは、ドライバーで想定される順序と一致する必要があります。