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 将 IRQL 还原为进入 ExAcquireSpinLockShared 时的原始值。
旋转锁是EX_SPIN_LOCK类型的 32 位变量。 驱动程序必须为旋转锁分配存储,并将旋转锁初始化为零。 此存储必须位于非分页系统空间内存中。
调用方在释放旋转锁之前应仅短暂地持有该锁。 有关详细信息,请参阅 旋转锁简介。
递归获取旋转锁会导致死锁,不允许。
要求
要求 | 值 |
---|---|
Header | wdm.h |
IRQL | DISPATCH_LEVEL (请参阅 Remarks.) |