次の方法で共有


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

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

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) を登録します。

必要条件

要件 価値
ターゲット プラットフォーム ウィンドウズ
ヘッダー portcls.h