Функция IoAllocateController (ntddk.h)
Подпрограмма IoAllocateController настраивает вызов подпрограммы ControllerControl , предоставляемой драйвером, как только контроллер устройства, представленный заданным объектом контроллера, становится доступным для выполнения операции ввода-вывода для целевого устройства, представленного заданным объектом устройства.
Синтаксис
void IoAllocateController(
[in] PCONTROLLER_OBJECT ControllerObject,
[in] PDEVICE_OBJECT DeviceObject,
[in] PDRIVER_CONTROL ExecutionRoutine,
[in, optional] PVOID Context
);
Параметры
[in] ControllerObject
Указатель на созданный драйвером объект контроллера, обычно представляющий физический контроллер, выделяемый для операции ввода-вывода на подключенном устройстве.
[in] DeviceObject
Указатель на объект устройства, представляющий целевое устройство текущего IRP.
[in] ExecutionRoutine
Указатель на подпрограмму ControllerControl , предоставляемую драйвером.
[in, optional] Context
Указатель на определенный драйвером контекст, передаваемый в подпрограмму ControllerControl драйвера при его вызове.
Возвращаемое значение
None
Remarks
Эта подпрограмма резервирует монопольный доступ к аппаратному контроллеру для указанного устройства.
Подпрограмма ControllerControl возвращает значение, указывающее, остается ли контроллер выделенным для устройства, либо DeallocateObject, либо KeepObject. Если он возвращает KeepObject, драйвер должен впоследствии вызвать IoFreeController , чтобы освободить объект контроллера.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 2000. |
Целевая платформа | Универсальное |
Верхняя часть | ntddk.h (включая Ntddk.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | DISPATCH_LEVEL |
Правила соответствия DDI | HwStorPortProhibitedDIs(storport), IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm), SpNoWait(storport), StorPortStartIo(storport) |