Share via


IInterruptSync インターフェイス (portcls.h)

インターフェイスは IInterruptSync 、割り込みサービス ルーチン (ISR) の一覧の実行を ISR 以外のルーチンと同期する割り込み同期オブジェクトを表します。 PortCls システム ドライバーは、このインターフェイスを実装し、アダプター ドライバーに公開します。 ミニポート ドライバーは、割り込みリソースに接続するIInterruptSync新しいIInterruptSyncオブジェクトを作成する PortCls 関数 PcNewInterruptSync を呼び出すことによって、オブジェクトへの参照を取得します。 IInterruptSyncIUnknown インターフェイスから継承されます。

IInterruptSync::RegisterServiceRoutine メソッドは、ISR を同期オブジェクトに関連付けます。 1 つの同期オブジェクトに複数の ISR を関連付けることができます。 割り込みが発生すると、同期オブジェクトは 、PcNewInterruptSync 関数の Mode パラメーターに従って、指定した順序と方法でリスト内の ISR を実行します。

IInterruptSync もう 1 つのファセットは、ISR の実行を ISR 以外の他のルーチンと同期できることです。 ISR 以外のルーチンが IInterruptSync::CallSynchronizedRoutine に渡され、実行が開始されると、同期オブジェクトに登録されている ISR の実行は、そのルーチンの実行が完了するまで保留されます。

RegisterServiceRoutine メソッドと CallSynchronizedRoutine メソッドはどちらも、次のように定義されている PINTERRUPTSYNCROUTINE 型の関数ポインターを受け入れます。

  typedef NTSTATUS (*PINTERRUPTSYNCROUTINE)
  (
      IN  struct IInterruptSync *InterruptSync,
      IN  PVOID                  DynamicContext
  );

InterruptSync メンバーは、同期オブジェクトへのポインターです。 DynamicContext メンバーには、呼び出されたときにルーチンに渡されるコンテキスト値が含まれています。

詳細については、「 割り込み同期オブジェクト」を参照してください。

継承

IInterruptSync インターフェイスは、IUnknown インターフェイスから継承されます。

メソッド

IInterruptSync インターフェイスには、これらのメソッドがあります。

 
IInterruptSync::CallSynchronizedRoutine

CallSynchronizedRoutine メソッドは、割り込みサービス ルーチン (ISR) ではなく、実行を ISR と同期する必要があるルーチンを呼び出します。
IInterruptSync::Connect

Connect メソッドは、同期オブジェクトを割り込みに接続します。
IInterruptSync::D isconnect

Disconnect メソッドは、同期オブジェクトを割り込みから切断します。
IInterruptSync::GetKInterrupt

GetKInterrupt メソッドは、ポート クラスの同期オブジェクトから WDM 割り込みオブジェクトを取得します。
IInterruptSync::RegisterServiceRoutine

RegisterServiceRoutine メソッドは、割り込みが発生したときに呼び出される割り込みサービス ルーチン (ISR) を登録します。

要件

要件
対象プラットフォーム Windows
ヘッダー portcls.h