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 分配的 IRPIoAllocateIrp 会自动初始化 IRP 的成员。

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

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

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

要求

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

另请参阅

IRP

IoAllocateIrp

IoAllocateMdl

IoBuildPartialMdl

IoFreeIrp

IoFreeMdl

IoReuseIrp

IoSetNextIrpStackLocation

IoSizeOfIrp