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