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 do 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's 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.

Valor de retorno

Nenhum

Observações

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 VERDADEIRO. 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
da Plataforma de Destino Universal
cabeçalho ks.h (incluir Ks.h)
biblioteca Ks.lib
IRQL < DISPATCH_LEVEL

Consulte também

KsAddIrpToCancelableQueue