Fonction IoCancelIrp (wdm.h)
La routine IoCancelIrp définit le bit d’annulation dans un IRP donné et appelle la routine d’annulation pour l’IRP s’il en existe un.
Syntaxe
BOOLEAN IoCancelIrp(
[in] PIRP Irp
);
Paramètres
[in] Irp
Pointeur vers l’IRP à annuler.
Valeur de retour
IoCancelIrp retourne TRUE si l’IRP avait une routine d’annulation et que cette routine était appelée. Sinon, elle retourne FALSE. Dans les deux cas, le bit d’annulation de l’IRP est défini sur TRUE. Pour plus d’informations, consultez Remarques.
Remarques
Si l’IRP a une routine d’annulation, IoCancelIrp définit le bit d’annulation et appelle la routine d’annulation.
Si Irp->CancelRoutine est NULL et, par conséquent, l’IRP n’est pas annulable, IoCancelIrp définit le bit d’annulation de l’IRP et retourne FALSE. L’IRP doit être annulé ultérieurement lorsqu’il devient annulable.
Si un pilote qui ne possède pas l’IRP appelle IoCancelIrp, les résultats sont imprévisibles. L’IRP peut être terminé avec un état réussi même si son bit d’annulation a été défini.
Un pilote intermédiaire ne doit pas appeler arbitrairement IoCancelIrp sauf si ce pilote a créé l’IRP passé dans l’appel. Sinon, le pilote intermédiaire peut annuler un IRP que certains pilotes de niveau supérieur effectuent le suivi à des fins propres.