Поделиться через


Функция 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 для инициализации irps драйвера, выделенного в качестве необработанной памяти. Не используйте IoInitializeIrp для инициализации IRP, выделенной IoAllocateIrp. IoAllocateIrp автоматически инициализирует члены IRP.

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows 2000.
целевая платформа Всеобщий
заголовка wdm.h (include 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