共用方式為


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 取得取消微調鎖定。

規格需求

需求
目標平台 Universal
標頭 ks.h (包含 Ks.h)
程式庫 Ks.lib
IRQL < DISPATCH_LEVEL

另請參閱

KsAddIrpToCancelableQueue