次の方法で共有


割り込みの有効化と無効化 (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の概要をご覧ください。

ドライバーがデバイスの割り込みを処理する場合は、割り込みを有効または無効にする OnInterruptEnable および OnInterruptDisable コールバック関数を提供する必要があります。 これらのコールバック関数は、デバイスの割り込みメカニズムを有効または無効にするために必要な操作を行う必要があります。

ドライバーが割り込みの有効化または無効化に関連する追加の操作を実行する必要がある場合、ドライバーは IPnpCallbackHardwareInterrupt::OnD0EntryPostInterruptsEnabled および IPnpCallbackHardwareInterrupt::OnD0ExitPreInterruptsDisabled コールバック関数を提供することもできます。

フレームワークは、デバイスが動作 (D0) 状態に入るたびに、ドライバーの OnD0Entry コールバック関数を呼び出した後、ドライバーの OnInterruptEnable および IPnpCallbackHardwareInterrupt::OnD0EntryPostInterruptsEnabled コールバック関数を呼び出します。 フレームワークは、デバイスが動作状態を離れるたびに、ドライバーの OnD0Exit コールバック関数を呼び出す前に、ドライバーの IPnpCallbackHardwareInterrupt::OnD0ExitPreInterruptsDisabled コールバック関数と OnInterruptDisable コールバック関数を呼び出します。 フレームワークがドライバーのコールバック関数を呼び出すタイミングの詳細については、「UMDF ベースのドライバーの PnP と電源管理」を参照してください。

フレームワークがドライバーの OnInterruptEnable コールバック関数を呼び出すたびに、デバイスが同じ割り込みリソースを使用することを想定しないでください。 PnP マネージャーがシステム リソースを再配布し、デバイスに新しい割り込みリソースを割り当てる場合があります。

ドライバーは、IWDFInterrupt::GetInfo を呼び出して、デバイスの割り込みリソースを判断できます。 ドライバーは、IWDFInterrupt::GetDevice を呼び出して、割り込みオブジェクトが属しているデバイスを特定できます。

割り込みを直接有効または無効にするには、ドライバーは、割り込みオブジェクトの IWDFInterrupt::Enable および IWDFInterrupt::Disable メソッドを呼び出すことができます。このメソッドは、ドライバーの OnInterruptEnable および OnInterruptDisable イベント コールバック関数を呼び出します。 ただし、ほとんどのドライバーは、フレームワークが適切なタイミングで OnInterruptEnable および OnInterruptDisable コールバック関数を呼び出せるようにする必要があります。