Partilhar via


Função IoAllocateController (ntddk.h)

A rotina de do IoAllocateController configura a chamada para uma rotina de ControllerControl fornecida pelo driver assim que o controlador de dispositivo, representado pelo objeto do controlador fornecido, estiver disponível para executar uma operação de E/S para o dispositivo de destino, representada pelo objeto de dispositivo fornecido.

Sintaxe

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

Parâmetros

[in] ControllerObject

Ponteiro para um objeto de controlador criado pelo driver, geralmente representando um controlador físico a ser alocado para uma operação de E/S em um dispositivo anexado.

[in] DeviceObject

Ponteiro para o objeto do dispositivo, representando o dispositivo de destino do IRP atual.

[in] ExecutionRoutine

Ponteiro para a rotina de ControllerControl fornecida pelo driver.

[in, optional] Context

Ponteiro para um contexto determinado pelo driver, passado para a rotina ControllerControl do do driver quando ele é chamado.

Valor de retorno

Nenhum

Observações

Essa rotina reserva acesso exclusivo ao controlador de hardware para o dispositivo especificado.

A rotina ControllerControl retorna um valor que indica se o controlador permanece alocado para o dispositivo, DeallocateObject ou KeepObject. Se ele retornar KeepObject, o driver deverá chamar posteriormente IoFreeController para liberar o objeto do controlador.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível a partir do Windows 2000.
da Plataforma de Destino Universal
cabeçalho ntddk.h (inclua Ntddk.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL DISPATCH_LEVEL
regras de conformidade de DDI HwStorPortProhibitedDIs(storport), IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm), SpNoWait(storport), StorPortStartIo(storport)

Consulte também

ControllerControl

IoCreateController

IoDeleteController

IoFreeController