Freigeben über


IoFreeIrp-Funktion (wdm.h)

Die IoFreeIrp-Routine gibt eine vom Anrufer zugewiesene IRP aus der IoCompletion-Routine des Aufrufers frei.

Syntax

void IoFreeIrp(
  [in] PIRP Irp
);

Parameter

[in] Irp

Zeiger auf die IRP, die veröffentlicht werden soll.

Rückgabewert

Keine

Bemerkungen

Diese Routine ist die reziproke zu IoAllocateIrp oder IoBuildAsynchronousFsdRequest. Die freigegebene IRP muss vom Aufrufer zugeordnet worden sein.

Diese Routine gibt auch einen IRP frei, der IoMakeAssociatedIrp zugeordnet ist, in dem der Aufrufer seine IoCompletion-Routine eingerichtet hat, die STATUS_MORE_PROCESSING_REQUIRED für die zugeordnete IRP zurückgibt.

IoFreeIrp gibt keine MDLs frei, die möglicherweise an die IRP angefügt werden. Der Treiber, der die IRP freigibt, muss diese MDLs explizit freigeben. Wenn außerdem die physischen Seiten, die von einer MDL beschrieben werden, gesperrt sind, muss der Treiber die Seiten entsperren, bevor er die MDL freigibt. Der Treiber muss diese Seiten jedoch nicht explizit aufheben. Stattdessen hebt IoFreeMdl die Zuordnung der Seiten automatisch auf, wenn die MDL freigegeben wird. Ein Codebeispiel zum Freigeben einer MDL-Kette finden Sie unter Verwenden von MDLs.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 2000.
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), IoAllocateFree(wdm), IoBuildDeviceControlNoFree(wdm), IoBuildFsdFree(wdm), IoBuildSynchronousFsdRequestNoFree(wdm), IoFreeIrp(storport)

Weitere Informationen

IoAllocateIrp

IoBuildAsynchronfsdRequest

IoCompletion

IoMakeAssociatedIrp

IoSetCompletionRoutine