IoAcquireCancelSpinLock 函数 (wdm.h)

IoAcquireCancelSpinLock 例程以多处理器安全的方式同步 IRP 的可取消状态转换。

语法

void IoAcquireCancelSpinLock(
  PKIRQL Irql
);

参数

Irql

[out]指向用于保存当前 IRQL 的变量的指针,以便后续调用 IoReleaseCancelSpinLock。 通常, Irql 作为局部变量保存在堆栈上。

返回值

备注

每当使用 IoSetCancelRoutine 更改 IRP 的可取消状态时,在设备对象中使用 I/O 管理器提供的设备队列的驱动程序都必须持有取消旋转锁。

在调用 IoSetCancelRoutine 时,管理其自己的 IRP 队列的驱动程序不需要持有取消旋转锁。

取消旋转锁的持有者应通过调用 IoReleaseCancelSpinLock 立即释放它。

在保留 取消 旋转锁的情况下调用驱动程序提供的 Cancel 例程。 它必须在完成要取消的 IRP 后释放取消旋转锁。

要求

要求
最低受支持的客户端 Windows 2000
标头 wdm.h
IRQL <=DISPATCH_LEVEL
DDI 符合性规则 CancelSpinLock (storport) CancelSpinLock (wdm) CancelSpinlockRelease (wdm) HwStorPortProhibitedDIs (storport) SpinLockSafe (storport) SpinLockSafe (wdm)

另请参阅

IoReleaseCancelSpinLock

IoSetCancelRoutine