IoFreeIrp 函数 (wdm.h)

IoFreeIrp 例程从调用方 IoCompletion 例程释放调用方分配的 IRP。

语法

void IoFreeIrp(
  [in] PIRP Irp
);

参数

[in] Irp

指向要发布的 IRP 的指针。

返回值

没有

言论

此例程是 IoAllocateIrpIoBuildAsynchronousFsdRequest的相互关系。 已释放的 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)

另请参阅

IoAllocateIrp

IoBuildAsynchronousFsdRequest

IoCompletion

IoMakeAssociatedIrp

IoSetCompletionRoutine