Fonction IoFreeIrp (wdm.h)
La routine IoFreeIrp libère un IRP alloué à l’appelant à partir de la routine IoCompletion de l’appelant .
Syntaxe
void IoFreeIrp(
[in] PIRP Irp
);
Paramètres
[in] Irp
Pointeur vers l’IRP qui doit être libéré.
Valeur de retour
None
Remarques
Cette routine est réciproque à IoAllocateIrp ou IoBuildAsynchronousFsdRequest. L’IRP libéré doit avoir été alloué par l’appelant.
Cette routine libère également un IRP alloué avec IoMakeAssociatedIrp dans lequel l’appelant a configuré sa routine IoCompletion qui retourne STATUS_MORE_PROCESSING_REQUIRED pour l’IRP associé.
IoFreeIrp ne libère pas les DLL qui peuvent être attachées à l’IRP. Le pilote qui libère l’IRP doit libérer explicitement ces LDM. En outre, si les pages physiques décrites par un MDL sont verrouillées, le pilote doit déverrouiller les pages avant de libérer le MDL. Toutefois, le pilote n’a pas besoin d’annuler explicitement ces pages. Au lieu de cela, IoFreeMdl annule automatiquement le mappage des pages lorsqu’il libère le MDL. Pour obtenir un exemple de code qui montre comment libérer une chaîne MDL, consultez Utilisation de MDL.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 2000. |
Plateforme cible | Universal |
En-tête | wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
Règles de conformité DDI | HwStorPortProhibitedDDIs(storport),IoAllocateFree(wdm), IoBuildDeviceControlNoFree(wdm), IoBuildFsdFree(wdm), IoBuildSynchronousFsdRequestNoFree(wdm), IoFreeIrp(storport) |