Función IoCancelIrp (wdm.h)
La rutina IoCancelIrp establece el bit de cancelación en un IRP determinado y llama a la rutina de cancelación del IRP si hay una.
Sintaxis
BOOLEAN IoCancelIrp(
[in] PIRP Irp
);
Parámetros
[in] Irp
Puntero al IRP que se va a cancelar.
Valor devuelto
ioCancelIrp devuelve TRUE si el IRP tenía una rutina de cancelación y se llamó a esta rutina. De lo contrario, devuelve FALSE. En cualquier caso, el bit de cancelación del IRP se establece en TRUE. Para obtener más información, vea Comentarios.
Observaciones
Si el IRP tiene una rutina de cancelación, IoCancelIrp establece el bit de cancelación y llama a la rutina de cancelación.
Si irp:> CancelRoutine es NULL y, por tanto, irP no se puede cancelar, IoCancelIrp establece el bit de cancelación de IRP y devuelve FALSE. El IRP debe cancelarse más adelante cuando se cancele.
Si un controlador que no posee las llamadas IRP ioCancelIrp, los resultados son impredecibles. El IRP puede completarse con un estado correcto aunque se haya establecido su bit de cancelación.
Un controlador intermedio no debe llamar arbitrariamente a ioCancelIrp a menos que ese controlador haya creado el IRP pasado en la llamada. De lo contrario, el controlador intermedio podría cancelar un IRP que algún controlador de nivel superior está realizando un seguimiento con fines propios.