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

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

ControllerControl

IoCreateController

IoDeleteController

IoFreeController