Поделиться через


Функция KsCancelIo (ks.h)

Функция KsCancelIo отменяет все irPs в указанном списке отмены. Если в списке нет процедуры отмены, то в IRP устанавливается только бит отмены. Функция может вызываться на уровне IRQ DISPATCH_LEVEL или ниже.

Синтаксис

KSDDKAPI VOID KsCancelIo(
  [in, out] PLIST_ENTRY QueueHead,
  [in]      PKSPIN_LOCK SpinLock
);

Параметры

[in, out] QueueHead

Указывает главу очереди, поддерживаемой драйвером, содержащую отмену IRP.

[in] SpinLock

Указывает на блокировку спина, выделенную вызывающим абонентом, для доступа к очереди. Копия этого указателя хранится в KSQUEUE_SPINLOCK_IRP_STORAGE (Irp) IRP для использования подпрограммой отмены при необходимости.

Возвращаемое значение

Никакой

Замечания

KsCancelIo отменяет все irPs в заданной очереди, поддерживаемой драйвером. Если У IRP есть подпрограмма отмены, вызывается подпрограмма отмены. В противном случае флаг отмены в IRP имеет значение TRUE. IrPs не удаляются из очереди этой подпрограммой. Это единственная ответственность драйвера, чтобы убедиться, что irPs удаляются либо подпрограммой отмены, указанной в IRP, либо другими функциями, предоставляемыми драйвером.

Если отмена IRP имеет подпрограмму отмены, предоставленной драйвером, блокировка спина отмены может быть получена из IRP путем вызова KSQUEUE_SPINLOCK_IRP_STORAGE.

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка ks.h (include Ks.h)
библиотеки Ks.lib
IRQL < DISPATCH_LEVEL

См. также

KsAddIrpToCancelableQueue