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