Funzione IoFreeIrp (wdm.h)
La routine IoFreeIrp rilascia un chiamante allocato IRP dalla routine IoCompletion del chiamante.
Sintassi
void IoFreeIrp(
[in] PIRP Irp
);
Parametri
[in] Irp
Puntatore all'IRP che deve essere rilasciato.
Valore restituito
nessuno
Osservazioni
Questa routine è la reciproca a IoAllocateIrp o IoBuildAsynchronousFsdRequest. L'IRP rilasciato deve essere stato allocato dal chiamante.
Questa routine rilascia anche un'IRP allocata con IoMakeAssociatedIrp in cui il chiamante ha configurato la routine IoCompletion che restituisce STATUS_MORE_PROCESSING_REQUIRED per l'IRP associato.
IoFreeIrp non libera alcun MDLs che potrebbe essere collegato all'IRP. Il driver che libera l'IRP deve liberare esplicitamente questi MDLs. Inoltre, se le pagine fisiche descritte da un MDL sono bloccate, il driver deve sbloccare le pagine prima di liberare il MDL. Tuttavia, il driver non deve annullare esplicitamente il mapping di queste pagine. Invece, IoFreeMdl annulla automaticamente il mapping delle pagine quando libera l'MDL. Per un esempio di codice che illustra come liberare una catena MDL, vedere Uso di MDLs.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile a partire da Windows 2000. |
Piattaforma di destinazione | Universale |
Intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
Regole di conformità DDI | HwStorPortProhibitedDDDIs(storport), IoAllocateFree(wdm), IoBuildDeviceControlNoFree(wdm), IoBuildFsdFree(wdm), IoBuildSynchronousFsdRequestNoFree(wdm), IoFreeIrp(storport) |