KsCancelIo 函数 (ks.h)
KsCancelIo 函数取消指定取消列表上的所有 IRP。 如果列表中的 IRP 没有取消例程,则 IRP 中仅设置取消位。 可以在 IRQ 级别调用函数DISPATCH_LEVEL或更低级别。
语法
KSDDKAPI VOID KsCancelIo(
[in, out] PLIST_ENTRY QueueHead,
[in] PKSPIN_LOCK SpinLock
);
参数
[in, out] QueueHead
指定要取消的 IRP 的驱动程序维护队列的头。
[in] SpinLock
指向调用方分配的用于队列访问的旋转锁。 如有必要,此指针的副本保存在 IRP 的 KSQUEUE_SPINLOCK_IRP_STORAGE (Irp) 中供取消例程使用。
返回值
无
备注
KsCancelIo 取消给定驱动程序维护队列中的所有 IRP。 如果 IRP 具有取消例程,则调用取消例程。 否则,IRP 中的取消标志设置为 TRUE。 此例程不会从队列中删除 IRP。 驱动程序独自负责确保 IRP 中指定的取消例程或驱动程序提供的某些其他功能删除 IRP。
如果正在取消的 IRP 具有驱动程序提供的取消例程,则可以通过调用 KSQUEUE_SPINLOCK_IRP_STORAGE 从 IRP 获取取消旋转锁。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | ks.h (包括 Ks.h) |
Library | Ks.lib |
IRQL | < DISPATCH_LEVEL |