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 開始提供。
目標平台 Universal
標頭 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