Funzione IoFreeIrp (wdm.h)
La routine IoFreeIrp rilascia un IRP allocato dal chiamante routine IoCompletion del chiamante.
Sintassi
void IoFreeIrp(
[in] PIRP Irp
);
Parametri
[in] Irp
Puntatore all'IRP da rilasciare.
Valore restituito
Nessuno
Osservazioni
Questa routine è il reciproco per IoAllocateIrp o IoBuildAsynchronousFsdRequest. L'IRP rilasciato deve essere stato allocato dal chiamante.
Questa routine rilascia anche un IRP allocato con IoMakeAssociatedIrp in cui il chiamante ha configurato il routine IoCompletion che restituisce STATUS_MORE_PROCESSING_REQUIRED per l'IRP associato.
IoFreeIrp non libera alcun MDL che potrebbe essere collegato all'IRP. Il driver che libera l'IRP deve liberare in modo esplicito questi MDLs. Inoltre, se le pagine fisiche descritte da un MDL sono bloccate, il driver deve sbloccare le pagine prima di liberare il file MDL. Tuttavia, il driver non deve rimuovere in modo esplicito il mapping di queste pagine. Al contrario, IoFreeMdl annulla automaticamente il mapping delle pagine quando libera il file MDL. Per un esempio di codice che illustra come liberare una catena MDL, vedere Using MDLs.
Fabbisogno
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 | HwStorPortProhibitedDDIs(storport), IoAllocateFree(wdm), IoBuildDeviceControlNoFree(wdm), IoBuildFsdFree(wdm), IoBuildSynchronousFsdRequestNoFree(wdm), IoFreeIrp(storport) |