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