Fungsi IoFreeIrp (wdm.h)
Rutinitas IoFreeIrp merilis IRP yang dialokasikan pemanggil dari rutinitas IoCompletion pemanggil.
Sintaksis
void IoFreeIrp(
[in] PIRP Irp
);
Parameter
[in] Irp
Pointer ke IRP yang akan dirilis.
Mengembalikan nilai
Tidak
Komentar
Rutinitas ini adalah timbal balik untuk IoAllocateIrp atau IoBuildAsynchronousFsdRequest. IRP yang dirilis harus dialokasikan oleh pemanggil.
Rutinitas ini juga merilis IRP yang dialokasikan dengan IoMakeAssociatedIrp di mana pemanggil menyiapkan IoCompletion rutinitas yang mengembalikan STATUS_MORE_PROCESSING_REQUIRED untuk IRP terkait.
IoFreeIrp tidak membebaskan MDL apa pun yang mungkin dilampirkan ke IRP. Driver yang membebaskan IRP harus secara eksplisit membebaskan MDL ini. Selain itu, jika halaman fisik yang dijelaskan oleh MDL dikunci, driver harus membuka kunci halaman sebelum membebaskan MDL. Namun, driver tidak perlu secara eksplisit membatalkan peta halaman ini. Sebaliknya, IoFreeMdl secara otomatis membuka peta halaman saat membebaskan MDL. Untuk contoh kode yang menunjukkan cara membebaskan rantai MDL, lihat Menggunakan MDL.
Persyaratan
Syarat | Nilai |
---|---|
klien minimum yang didukung | Tersedia dimulai dengan Windows 2000. |
Platform Target | Universal |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
aturan kepatuhan DDI | HwStorPortProhibitedDIs (storport), IoAllocateFree(wdm), IoBuildDeviceControlNoFree(wdm), IoBuildFsdFree(wdm), IoBuildSynchronousFsdRequestNoFree(wdm), IoFreeIrp(storport) |