Fungsi IoFreeIrp (wdm.h)

Rutinitas IoFreeIrp merilis IRP yang dialokasikan penelepon dari rutinitas IoCompletion penelepon.

Sintaks

void IoFreeIrp(
  [in] PIRP Irp
);

Parameter

[in] Irp

Arahkan ke IRP yang akan dirilis.

Nilai kembali

Tidak ada

Keterangan

Rutinitas ini adalah timbal balik IoAllocateIrp atau IoBuildAsynchronousFsdRequest. IRP yang dirilis harus dialokasikan oleh pemanggil.

Rutinitas ini juga merilis IRP yang dialokasikan dengan IoMakeAssociatedIrp di mana penelepon menyiapkan rutinitas IoCompletion-nya 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

Persyaratan Nilai
Klien minimum yang didukung Tersedia dimulai dengan Windows 2000.
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
Aturan kepatuhan DDI HwStorPortProhibitedDDIs(storport), IoAllocateFree(wdm), IoBuildDeviceControlNoFree(wdm), IoBuildFsdFree(wdm), IoBuildSynchronousFsdRequestNoFree(wdm), IoFreeIrp(storport)

Lihat juga

IoAllocateIrp

IoBuildAsynchronousFsdRequest

IoCompletion

IoMakeAssociatedIrp

IoSetCompletionRoutine