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