Partager via


Fonction IoFreeIrp (wdm.h)

La routine IoFreeIrp libère un IRP alloué par l’appelant à partir de la routine IoCompletion de l’appelant.

Syntaxe

void IoFreeIrp(
  [in] PIRP Irp
);

Paramètres

[in] Irp

Pointeur vers l’IRP à libérer.

Valeur de retour

Aucun

Remarques

Cette routine est la réciproque à IoAllocateIrp ou IoBuildAsynchronousFsdRequest. L’IRP publié 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 aucun MDL susceptible d’être attaché à l’IRP. Le pilote qui libère l’IRP doit libérer explicitement ces DLL MDL. 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 le mappage de 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 MDLs.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows 2000.
plateforme cible Universel
d’en-tête wdm.h (include 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)

Voir aussi

IoAllocateIrp

IoBuildAsynchronousFsdRequest

IoCompletion

IoMakeAssociatedIrp

IoSetCompletionRoutine