IoInitializeIrp 函数 (wdm.h)

IoInitializeIrp 例程初始化调用方分配的给定 IRP。

语法

void IoInitializeIrp(
  [in, out] PIRP   Irp,
  [in]      USHORT PacketSize,
  [in]      CCHAR  StackSize
);

参数

[in, out] Irp

指向要初始化的 IRP 的指针。

[in] PacketSize

指定 IRP 的大小(以字节为单位)。

[in] StackSize

指定 IRP 中的堆栈位置数。

返回值

没有

言论

驱动程序使用 IoInitializeIrp 初始化分配为原始内存的驱动程序的 IRP。 请勿使用 IoInitializeIrp 初始化由 IoAllocateIrp分配的 IRP。 IoAllocateIrp 会自动初始化 IRP 的成员。

驱动程序可以使用 IoInitializeIrp 重新初始化 IRP,以便在某些情况下重复使用。 有关详细信息,请参阅 重用 IRP

如果驱动程序将 MDL 与分配的 IRP 相关联,驱动程序负责在 IRP 完成后释放 MDL。

中间或最高级别驱动程序还可以调用 IoBuildDeviceIoControlRequestIoBuildAsynchronousFsdRequest,或 IoBuildSynchronousFsdRequest 来设置发送到较低级别的驱动程序的请求。 只有最高级别的驱动程序才能调用 IoMakeAssociatedIrp

要求

要求 价值
最低支持的客户端 从 Windows 2000 开始可用。
目标平台 普遍
标头 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 HwStorPortProhibitedDIS(storport)IoReuseIrp(wdm)

另请参阅

IRP

IoAllocateIrp

IoAllocateMdl

IoBuildPartialMdl

IoFreeIrp

IoFreeMdl

IoReuseIrp

IoSetNextIrpStackLocation

IoSizeOfIrp