Partager via


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)

Voir aussi

IoAllocateIrp

IoBuildAsynchronousFsdRequest

IoCompletion

IoMakeAssociatedIrp

IoSetCompletionRoutine