Partilhar via


Função UcmTcpciPortControllerStart (ucmtcpciportcontroller.h)

Indica à 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.

Valor de retorno

(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 de 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.

Observações

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 do driver ou solicitações 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 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 atributos. O driver deve assumir que a extensão de classe pode enviar solicitações antes mesmo de UcmTcpciPortControllerStart retorna, ou seja, de dentro dessa chamada DDI. Se o driver estiver mantendo um bloqueio ao chamar UcmTcpciPortControllerStart e também tentar adquirir um bloqueio ao lidar com 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 Inicial, resulta em um erro.

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

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 10
servidor com suporte mínimo Windows Server 2016
da Plataforma de Destino Windows
cabeçalho ucmtcpciportcontroller.h
biblioteca Ucmtcpcicxstub.lib
IRQL PASSIVE_LEVEL

Consulte também

UcmTcpciPortControllerStop