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) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDIS(storport),IoAllocateFree(wdm),IoBuildDeviceControlNoFree(wdm)、IoBuildFsdFree(wdm)、IoBuildSynchronousFsdRequestNoFree(wdm)、IoFreeIrp(storport) |