Función IoAllocateController (ntddk.h)

La rutina IoAllocateController configura la llamada a una rutina ControllerControl proporcionada por el controlador en cuanto el controlador de dispositivo, representado por el objeto de controlador especificado, está disponible para llevar a cabo una operación de E/S para el dispositivo de destino, representada por el objeto de dispositivo especificado.

Sintaxis

void IoAllocateController(
  [in]           PCONTROLLER_OBJECT ControllerObject,
  [in]           PDEVICE_OBJECT     DeviceObject,
  [in]           PDRIVER_CONTROL    ExecutionRoutine,
  [in, optional] PVOID              Context
);

Parámetros

[in] ControllerObject

Puntero a un objeto de controlador creado por el controlador, normalmente que representa un controlador físico que se asignará para una operación de E/S en un dispositivo conectado.

[in] DeviceObject

Puntero al objeto de dispositivo, que representa el dispositivo de destino del IRP actual.

[in] ExecutionRoutine

Puntero a la rutina ControllerControl proporcionada por el controlador.

[in, optional] Context

Puntero a un contexto determinado por el controlador, pasado a la rutina ControllerControl del controlador cuando se llama a él.

Valor devuelto

None

Observaciones

Esta rutina reserva acceso exclusivo al controlador de hardware para el dispositivo especificado.

La rutina ControllerControl devuelve un valor que indica si el controlador permanece asignado al dispositivo, ya sea DeallocateObject o KeepObject. Si devuelve KeepObject, el controlador debe llamar posteriormente a IoFreeController para liberar el objeto de controlador.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 2000.
Plataforma de destino Universal
Encabezado ntddk.h (incluya Ntddk.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL DISPATCH_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDDIs(storport), IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm), SpNoWait(storport), StorPortStartIo(storport)

Consulte también

ControllerControl

IoCreateController

IoDeleteController

IoFreeController