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。
中间或最高级别的驱动程序还可以调用 IoBuildDeviceIoControlRequest、 IoBuildAsynchronousFsdRequest 或 IoBuildSynchronousFsdRequest ,以设置它发送到较低级别驱动程序的请求。 只有最高级别的驱动程序才能调用 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) |