Compartilhar via


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

Confira também

KsAddIrpToCancelableQueue