Функция 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 возвращает значение, указывающее, остается ли контроллер выделенным для устройства, либо DeallocateObject или KeepObject. Если он возвращает KeepObject, драйвер должен впоследствии вызвать IoFreeController, чтобы освободить объект контроллера.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 2000. |
целевая платформа | Всеобщий |
заголовка | ntddk.h (include Ntddk.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | DISPATCH_LEVEL |
правил соответствия DDI | HwStorPortProhibitedDDIs(storport), IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm), SpNoWait(storport), StorPortStartIo(storport) |