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 有取消例程,則會呼叫 cancel 例程。 否則,IRP 中的取消旗標會設定為 TRUE。 此例程不會從佇列中移除 IRP。 驅動程式的唯一責任是確保 IRP 中指定的取消例程,或由某些其他驅動程式提供的功能移除 IRP。
如果取消的 IRP 有驅動程式提供的取消例程,則可以呼叫 KSQUEUE_SPINLOCK_IRP_STORAGE 從 IRP 取得取消微調鎖定。
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
標頭 | ks.h (包括 Ks.h) |
連結庫 | Ks.lib |
IRQL | < DISPATCH_LEVEL |