Функция 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.

Возвращаемое значение

None

Remarks

Драйверы используют IoInitializeIrp для инициализации IRP, выделенных драйвером в качестве необработанной памяти. Не используйте IoInitializeIrp для инициализации IRP, выделенного IoAllocateIrp. IoAllocateIrp автоматически инициализирует члены IRP.

Драйверы могут использовать IoInitializeIrp для повторной инициализации IRP для повторного использования только при определенных обстоятельствах. Дополнительные сведения см. в разделе Повторное использованием IRP .

Если драйвер связывает MDL с выделенной им IRP, драйвер отвечает за освобождение MDL после завершения IRP.

Драйвер промежуточного или верхнего уровня также может вызывать IoBuildDeviceIoControlRequest, IoBuildAsynchronousFsdRequest или IoBuildSynchronousFsdRequest для настройки запросов, отправляемых драйверам более низкого уровня. Только драйвер самого высокого уровня может вызывать IoMakeAssociatedIrp.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 2000.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
Правила соответствия DDI HwStorPortProhibitedDDIs(storport), IoReuseIrp(wdm)

См. также раздел

IRP

IoAllocateIrp

IoAllocateMdl

IoBuildPartialMdl

IoFreeIrp

IoFreeMdl

IoReuseIrp

IoSetNextIrpStackLocation

IoSizeOfIrp