Função IoCancelIrp (wdm.h)
A rotina IoCancelIrp define o bit de cancelamento em um determinado IRP e chama a rotina de cancelamento para o IRP se houver um.
Sintaxe
BOOLEAN IoCancelIrp(
[in] PIRP Irp
);
Parâmetros
[in] Irp
Um ponteiro para o IRP a ser cancelado.
Valor de retorno
IoCancelIrp retornará VERDADEIRO se o IRP tiver uma rotina de cancelamento e essa rotina for chamada. Caso contrário, ele retornará FALSE. Em ambos os casos, o bit de cancelamento do IRP é definido como VERDADEIRO. Para obter mais informações, consulte Comentários.
Observações
Se o IRP tiver uma rotina de cancelamento, IoCancelIrp definirá o bit de cancelamento e chamará a rotina de cancelamento.
Se irp –> CancelRoutine é NULL e, portanto, o IRP não é cancelável, IoCancelIrp define o bit de cancelamento do IRP e retorna false. O IRP deve ser cancelado posteriormente quando se tornar cancelável.
Se um driver que não possui as chamadas IRP IoCancelIrp, os resultados serão imprevisíveis. O IRP pode ser concluído com um status bem-sucedido, mesmo que seu bit de cancelamento tenha sido definido.
Um driver intermediário não deve chamar arbitrariamente IoCancelIrp, a menos que o driver tenha criado o IRP passado na chamada. Caso contrário, o driver intermediário pode cancelar um IRP que algum driver de nível superior está acompanhando para fins próprios.