Compartilhar via


Função UcmTcpciPortControllerStart (ucmtcpciportcontroller.h)

Indica para a extensão de classe UcmTcpciCx que o driver cliente agora está pronto para atender às solicitações de hardware para o controlador de porta.

Sintaxe

NTSTATUS UcmTcpciPortControllerStart(
  UCMTCPCIPORTCONTROLLER PortControllerObject
);

Parâmetros

PortControllerObject

Manipule para o objeto do controlador de porta que o driver cliente recebeu na chamada anterior para UcmTcpciPortControllerCreate.

Retornar valor

(NTSTATUS) O método retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, esse método poderá retornar um código de erro NTSTATUS apropriado.

Código de retorno Descrição
STATUS_INVALID_DEVICE_REQUEST
O controlador de porta já está no estado Iniciar.
STATUS_INVALID_HANDLE
A fila de solicitação de hardware não foi definida chamando UcmTcpciPortControllerSetHardwareRequestQueue.

Comentários

Depois que o driver cliente receber o identificador UCMPORTCONTROLLER para o objeto do controlador de porta, o driver chamará esse método para notificar a extensão de classe de que o driver pode começar a receber solicitações de hardware. Essa chamada de método permite que o driver cliente execute a inicialização de seu espaço de contexto de estrutura no objeto do controlador de porta, antes que a extensão de classe possa invocar as funções de retorno de chamada ou solicitações do driver para o objeto do controlador de porta. O driver não pode chamar UcmTcpciPortControllerAlert ou UcmTcpciPortControllerStop até que o controlador de porta seja iniciado.

O driver do cliente chama esse método logo após chamar UcmTcpciPortControllerCreate e inicializar sua estrutura de contexto, se ele tiver sido especificado na estrutura WDF_OBJECT_ATTRIBUTES como o valor do parâmetro Attributes . O driver deve assumir que a extensão de classe pode enviar solicitações mesmo antes de UcmTcpciPortControllerStart retornar, ou seja, de dentro dessa chamada DDI. Se o driver estiver mantendo um bloqueio ao chamar UcmTcpciPortControllerStart e também tentar adquirir um bloqueio durante o tratamento de uma solicitação de hardware (em seu retorno de chamada de fila de solicitação de hardware), isso poderá resultar em um deadlock.

Uma chamada para UcmTcpciPortControllerStart para iniciar um objeto de controlador de porta já no estado Iniciar resulta em um erro.

Na inicialização, se o BIOS já tiver negociado um contrato PD, UcmTcpciCx começará de um estado desanexado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10
Servidor mínimo com suporte Windows Server 2016
Plataforma de Destino Windows
Cabeçalho ucmtcpciportcontroller.h
Biblioteca Ucmtcpcicxstub.lib
IRQL PASSIVE_LEVEL

Confira também

UcmTcpciPortControllerStop