ExAcquireSpinLockExclusive 関数 (wdm.h)
ExAcquireSpinLockExclusive ルーチンは、呼び出し元による排他アクセス用のスピン ロックを取得し、IRQL をDISPATCH_LEVELに上げます。
構文
KIRQL ExAcquireSpinLockExclusive(
PEX_SPIN_LOCK SpinLock
);
パラメーター
SpinLock
[入力、出力]排他的アクセスのために取得するスピン ロックへのポインター。 呼び出し元は、このスピン ロックをまだ所有していない必要があります。
戻り値
ExAcquireSpinLockExclusive は、前の IRQL 値を返します。 詳細については、「解説」を参照してください。
注釈
このルーチンへのエントリでは、呼び出し元が IRQL <= DISPATCH_LEVELで実行されている必要があります。 このルーチンは、IRQL を DISPATCH_LEVELに上げ、元の (入力時) IRQL 値を返します。
スピン ロックを解放するには、 ExReleaseSpinLockExclusive ルーチンを呼び出します。 ExReleaseSpinLockExclusive は、 EXAcquireSpinLockExclusive に入力した元の値に IRQL を復元します。
スピン ロックは、EX_SPIN_LOCK型の 32 ビット変数です。 ドライバーは、スピン ロックの記憶域を割り当て、スピン ロックを 0 に初期化する必要があります。 このストレージは、非ページ システム空間メモリに配置する必要があります。
呼び出し元は、スピン ロックを解放する前に短時間だけ保持する必要があります。 詳細については、「 スピン ロックの概要」を参照してください。
スピン ロックを再帰的に取得するとデッドロックが発生し、許可されません。
要件
要件 | 値 |
---|---|
Header | wdm.h |
IRQL | IRQL <= DISPATCH_LEVEL |