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

另请参阅

KsAddIrpToCancelableQueue