Função KsCancelIo (ks.h)
A função KsCancelIo cancela todos os IRPs na lista de cancelamento especificada. Se um IRP na lista não tiver uma rotina de cancelamento, somente o bit de cancelamento será definido no IRP. A função pode ser chamada no nível IRQ DISPATCH_LEVEL ou inferior.
Sintaxe
KSDDKAPI VOID KsCancelIo(
[in, out] PLIST_ENTRY QueueHead,
[in] PKSPIN_LOCK SpinLock
);
Parâmetros
[in, out] QueueHead
Especifica o cabeçalho de uma fila mantida pelo driver que contém os IRP a serem cancelados.
[in] SpinLock
Aponta para um bloqueio de rotação alocado pelo chamador para acesso à fila. Uma cópia desse ponteiro é mantida na KSQUEUE_SPINLOCK_IRP_STORAGE (Irp) do IRP para uso pela rotina de cancelamento, se necessário.
Retornar valor
Nenhum
Comentários
O KsCancelIo cancela todos os IRPs em uma determinada fila mantida pelo driver. Se o IRP tiver uma rotina de cancelamento, a rotina de cancelamento será chamada. Caso contrário, o sinalizador de cancelamento no IRP será definido como TRUE. Os IRPs não são removidos da fila por essa rotina. É responsabilidade exclusiva do driver garantir que os IRPs sejam removidos pela rotina de cancelamento especificada no IRP ou por alguma outra funcionalidade fornecida pelo driver.
Se o IRP que está sendo cancelado tiver uma rotina de cancelamento fornecida pelo driver, o bloqueio de rotação de cancelamento poderá ser obtido do IRP chamando KSQUEUE_SPINLOCK_IRP_STORAGE.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Cabeçalho | ks.h (inclua Ks.h) |
Biblioteca | Ks.lib |
IRQL | < DISPATCH_LEVEL |