ioFreeIrp 函数 (wdm.h)
IoFreeIrp 例程从调用方 IoCompletion 例程释放调用方分配的 IRP。
语法
void IoFreeIrp(
[in] PIRP Irp
);
参数
[in] Irp
指向要释放的 IRP 的指针。
返回值
无
备注
此例程是 IoAllocateIrp 或 IoBuildAsynchronousFsdRequest 的倒数。 释放的 IRP 必须由调用方分配。
此例程还会释放使用 IoMakeAssociatedIrp 分配的 IRP,调用方在其中设置其 IoCompletion 例程,以返回关联 IRP 的STATUS_MORE_PROCESSING_REQUIRED。
IoFreeIrp 不会释放可能附加到 IRP 的任何 MDL。 释放 IRP 的驱动程序必须显式释放这些 MDL。 此外,如果 MDL 描述的物理页已锁定,驱动程序必须先解锁页面,然后才能释放 MDL。 但是,驱动程序不需要显式取消映射这些页面。 相反, IoFreeMdl 会在释放 MDL 时自动取消映射页面。 有关演示如何释放 MDL 链的代码示例,请参阅 使用 MDL。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 通用 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDDI (storport) 、 IoAllocateFree (wdm) 、 IoBuildDeviceControlNoFree (wdm) 、 IoBuildFsdFree (wdm) 、 IoBuildSynchronousFsdRequestNoFree (wdm) 、 IoFreeIrp (storport) |