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


Функция 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

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

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

None

Remarks

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

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

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ks.h (включая Ks.h)
Библиотека Ks.lib
IRQL < DISPATCH_LEVEL

См. также раздел

KsAddIrpToCancelableQueue