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

另请参阅

IoAllocateIrp

IoBuildAsynchronousFsdRequest

IoCompletion

IoMakeAssociatedIrp

IoSetCompletionRoutine