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