次の方法で共有


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 、IRQL を ExAcquireSpinLockExclusive へのエントリ時の元の値復元します。

スピン ロックは、EX_SPIN_LOCK型の 32 ビット変数です。 ドライバーは、スピン ロックの記憶域を割り当て、スピン ロックをゼロに初期化する必要があります。 このストレージは、非ページ システム領域メモリに配置する必要があります。

呼び出し元は、スピン ロックを解放する前に、短時間だけ保持する必要があります。 詳細については、「スピン ロックの概要」を参照してください。

スピン ロックを再帰的に取得するとデッドロックが発生し、許可されません。

必要条件

要件 価値
ヘッダー wdm.h
IRQL IRQL <= DISPATCH_LEVEL

関連項目

ExReleaseSpinLockExclusive