次の方法で共有


割り込みオブジェクトの作成 (UMDF 1)

警告

UMDF 2 は UMDF の最新バージョンであり、UMDF 1 に取って代わるものです。 すべての新しい UMDF ドライバーは、UMDF 2 を使用して記述する必要があります。 UMDF 1 には新機能が追加されておらず、Windows 10 の新しいバージョンでは UMDF 1 のサポートが制限されています。 ユニバーサル Windows ドライバーでは、UMDF 2 を使用する必要があります。

アーカイブされた UMDF 1 サンプルは、Windows 11, バージョン 22H2 - 2022 年 5 月 ドライバー サンプル アップデートでご確認いただけます。

詳しくは、UMDFの概要をご覧ください。

デバイスのハードウェア割り込みを処理する UMDF ドライバーは、各デバイスがサポートできる割り込みごとに、フレームワーク割り込みオブジェクトを作成する必要があります。

通常、ドライバーは IDriverEntry::OnDeviceAdd でフレームワーク割り込みオブジェクトを作成します。 ただし、IPnpCallbackHardware2::OnPrepareHardware で割り込みオブジェクトを作成することもできます。

フレームワーク割り込みオブジェクトを作成するには、ドライバーが WUDF_INTERRUPT_CONFIG 構造体を初期化し、IWDFDevice3::CreateInterrupt メソッドに渡す必要があります。 このメソッドは、次のドライバー指定のイベント コールバック関数を登録します。

OnInterruptEnable
ハードウェア割り込みを有効にします。

OnInterruptDisable
ハードウェア割り込みを無効にします。

OnInterruptIsr
割り込みの割り込みサービス ルーチン (ISR)。

OnInterruptWorkItem
割り込みのワーカー ルーチン。

必要に応じて、ドライバーは IWDFInterrupt::SetPolicy または IWDFInterrupt::SetExtendedPolicy を呼び出して、追加の割り込みパラメーターを指定できます。

フレームワークは、プラグ アンド プレイ (PnP) マネージャーが割り込みベクターなどのシステム リソースをデバイスに割り当てる前に、ドライバーの IDriverEntry::OnDeviceAdd コールバック関数を呼び出します。 PnP マネージャーがリソースを割り当てると、フレームワークは割り込みリソースをデバイスの割り込みオブジェクトに格納します。 (プラグ アンド プレイをサポートしていないドライバーは、割り込みオブジェクトを使用できません。)

メッセージ シグナル割り込み (MSI) は、Windows Vista 以降のバージョンのオペレーティング システムでサポートされています。 オペレーティング システムがデバイスの MSI をサポートできるようにするには、ドライバーの INF ファイルでレジストリにいくつかの値を設定する必要があります。 これらの値を設定する方法については、「レジストリでメッセージシグナル割り込みを有効にする」を参照してください。

デバイスが特定の数の MSI メッセージをサポートできる場合、PnP マネージャーはその数のメッセージをデバイスに割り当てようとします。 PnP マネージャーは、デバイスがサポートできるすべてのメッセージを割り当てることができない場合は、デバイスに 1 つのメッセージのみを割り当てます。

ドライバーは、デバイスがサポートできる各割り込みベクターまたは MSI メッセージのフレームワーク割り込みオブジェクトを作成する必要があります。 PnP マネージャーが、デバイスがサポートできる割り込みリソースをすべてデバイスに許可しない場合、余分な割り込みオブジェクトは使用されず、そのコールバック関数は呼び出されません。