exAcquireSpinLockExclusive 函数 (wdm.h)

ExAcquireSpinLockExclusive 例程获取由调用方进行独占访问的旋转锁,并将 IRQL 提升为DISPATCH_LEVEL。

语法

KIRQL ExAcquireSpinLockExclusive(
  PEX_SPIN_LOCK SpinLock
);

参数

SpinLock

[in, out]指向要获取的用于独占访问的旋转锁的指针。 调用方不得已拥有此旋转锁。

返回值

ExAcquireSpinLockExclusive 返回以前的 IRQL 值。 有关详细信息,请参阅“备注”。

注解

进入此例程时,调用方必须在 IRQL <= DISPATCH_LEVEL 运行。 此例程将 IRQL 提升为DISPATCH_LEVEL,并返回输入时的原始 () IRQL 值。

若要释放旋转锁,请调用 ExReleaseSpinLockExclusive 例程。 ExReleaseSpinLockExclusive 将 IRQL 还原到进入 ExAcquireSpinLockExclusive 时的原始值。

旋转锁是EX_SPIN_LOCK类型的 32 位变量。 驱动程序必须为旋转锁分配存储,并将旋转锁初始化为零。 此存储必须位于非分页系统空间内存中。

调用方在释放旋转锁之前应仅短暂地持有它。 有关详细信息,请参阅 旋转锁简介

递归获取自旋锁会导致死锁,不允许。

要求

要求
Header wdm.h
IRQL IRQL <= DISPATCH_LEVEL

另请参阅

ExReleaseSpinLockExclusive