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 |