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