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) |