IInterruptSync インターフェイス (portcls.h)
インターフェイスは IInterruptSync
、割り込みサービス ルーチン (ISR) の一覧の実行を ISR 以外のルーチンと同期する割り込み同期オブジェクトを表します。 PortCls システム ドライバーは、このインターフェイスを実装し、アダプター ドライバーに公開します。 ミニポート ドライバーは、割り込みリソースに接続するIInterruptSync
新しいIInterruptSync
オブジェクトを作成する PortCls 関数 PcNewInterruptSync を呼び出すことによって、オブジェクトへの参照を取得します。 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) を登録します。 |
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | portcls.h |