KeSynchronizeExecution ルーチンは、指定されたルーチンの実行を、1 つ以上の割り込みオブジェクトのセットに割り当てられている割り込みサービス ルーチン (ISR) と同期します。
構文
BOOLEAN KeSynchronizeExecution(
[in, out] PKINTERRUPT Interrupt,
[in] PKSYNCHRONIZE_ROUTINE SynchronizeRoutine,
[in, optional] __drv_aliasesMem PVOID SynchronizeContext
);
パラメーター
[in, out] Interrupt
割り込みオブジェクトのセットへのポインター。 呼び出し元は、IoConnectInterrupt または IoConnectInterruptEx ルーチン からこのポインターを取得しました。
[in] SynchronizeRoutine
割り込みオブジェクトに割り当てられた ISR の実行と同期する実行 呼び出し元が指定した SynchCritSection ルーチンを指定します。
[in, optional] SynchronizeContext
呼び出し時に SynchCritSection ルーチンに渡される呼び出し元が指定したコンテキスト値へのポインター。
戻り値
KeSynchronizeExecution 、操作が成功した場合 TRUE を返します。 それ以外の場合は、FALSE 返します。
備考
このルーチンが呼び出されると、次の処理が行われます。
- IRQL は、IoConnectInterrupt または IoConnectInterruptEx の呼び出しで指定された SynchronizeIrql 値 発生します。
- SynchronizeContext へのアクセスは、関連付けられた割り込みオブジェクト スピン ロック (または、PASSIVE_LEVELで実行される ISR の場合はシステム イベント オブジェクト) を取得することによって、割り当てられた ISR と同期されます。
- 指定した SynchCritSection ルーチンは、SynchronizeContext 値をパラメーターとして使用して呼び出されます。
KeSynchronizeExecution の呼び出し元は IRQL <= DIRQL で実行されている必要があります。つまり、呼び出し元が ISR を IoConnectInterrupt または IoConnectInterruptExに登録したときに指定した SynchronizeIrql 値以下の IRQL で指定します。
Windows 8 以降では、ドライバー KeSynchronizeExecution を呼び出して、SynchCritSection ルーチンの実行を IRQL = PASSIVE_LEVEL で実行される ISR と同期できます。 以前のバージョンの Windows では、KeSynchronizeExecution は、IRQL >= DISPATCH_LEVEL で実行される ISR とのみ実行を同期できます。 詳細については、「Passive-Level 割り込みサービス ルーチン を使用するを参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 以降で使用できます。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DIRQL (「解説」セクションを参照) |
関連項目
IoConnectInterruptEx の