Функция IoCreateController (ntddk.h)

Подпрограмма IoCreateController выделяет память для объекта контроллера и инициализирует его с расширением контроллера размера, определяемого драйвером.

Синтаксис

PCONTROLLER_OBJECT IoCreateController(
  [in] ULONG Size
);

Параметры

[in] Size

Указывает количество байтов, выделяемых для расширения контроллера.

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

IoCreateController возвращает указатель на объект контроллера или указатель NULL , если не удалось выделить память для запрошенного расширения устройства.

Комментарии

Объект контроллера обычно представляет физический контроллер устройства с подключенными устройствами, на которых один драйвер выполняет запросы ввода-вывода. Расширение контроллера выделяется из непагрегированного пула и гарантированно будет доступно любой подпрограмме драйвера и в произвольном контексте потока.

Объект контроллера используется для синхронизации операций ввода-вывода для целевых устройств, для которых запросы ввода-вывода могут поступать одновременно с одним монолитным драйвером. Драйвер также может использовать объект контроллера для синхронизации операций через каналы устройств.

Если IoCreateController возвращает значение NULL, драйверу не удастся запустить устройство.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 2000.
Целевая платформа Универсальное
Верхняя часть ntddk.h (включая Ntddk.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Правила соответствия DDI HwStorPortProhibitedDIs(storport), IrqlIoPassive2(wdm), PowerIrpDDis(wdm)

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

CONTROLLER_OBJECT

IoAllocateController

IoDeleteController

IoFreeController