Compartilhar via


EVT_UCM_CONNECTOR_SET_DATA_ROLE função de retorno de chamada (ucmmanager.h)

A implementação do driver cliente da função de retorno de chamada de evento EVT_UCM_CONNECTOR_SET_DATA_ROLE que troca a função de dados do conector pela função especificada quando anexada a um conector de parceiro.

Sintaxe

EVT_UCM_CONNECTOR_SET_DATA_ROLE EvtUcmConnectorSetDataRole;

NTSTATUS EvtUcmConnectorSetDataRole(
  [in] UCMCONNECTOR Connector,
  [in] UCM_DATA_ROLE DataRole
)
{...}

Parâmetros

[in] Connector

Manipule para o conector que o driver cliente recebeu em uma chamada anterior para o método ucmConnectorCreate.

[in] DataRole

Um sinalizador UCM_TYPEC_PARTNERdigitado que especifica a função a ser definida.

Valor de retorno

Se a operação for bem-sucedida, a função de retorno de chamada deverá retornar STATUS_SUCCESS ou outro valor de status para o qual NT_SUCCESS(status) é igual a TRUE. Caso contrário, ele deverá retornar um valor de status para o qual NT_SUCCESS(status) é igual a FALSE.

Observações

Para registrar uma função de retorno de chamada EVT_UCM_CONNECTOR_SET_DATA_ROLE, o driver cliente deve chamar UcmConnectorCreate.

A extensão da estrutura do gerenciador de conectores USB (UcmCx) pode solicitar UcmTypeCPortStateUfp ou UcmTypeCPortStateDfp. Se a porta já estiver na função solicitada, o driver cliente poderá concluir a solicitação sem alterações. Caso contrário, ele iniciará uma operação de troca de função de dados (DR_Swap). O driver chama ucmConnectorDataDirectionChanged para notificar a UcmCx sobre o êxito ou falha dessa operação. O driver pode chamar esse método dentro da função de retorno de chamada.

A função persiste para a conexão atual.

Se uma operação de troca de função estiver pendente, o UcmCx não solicitará outra troca de função. Essas operações são serializadas entre trocas de função de energia e dados.

Após a conclusão da operação de troca, se a porta do parceiro enviar uma solicitação DR_Swap, o driver cliente deverá rejeitar a solicitação.

Exemplos


EVT_UCM_CONNECTOR_SET_DATA_ROLE     EvtSetDataRole;  

NTSTATUS  
EvtSetDataRole(  
    UCMCONNECTOR  Connector,  
    UCM_TYPE_C_PORT_STATE DataRole  
    )  
{  
    PCONNECTOR_CONTEXT connCtx;  
  
    TRACE_INFO("EvtSetDataRole(%!UCM_TYPE_C_PORT_STATE!) Entry", DataRole);  
  
    connCtx = GetConnectorContext(Connector);

  
    TRACE_FUNC_EXIT();  
    return STATUS_SUCCESS;  
}  

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 10
servidor com suporte mínimo Windows Server 2016
da Plataforma de Destino Windows
versão mínima do KMDF 1.15
versão mínima do UMDF 2.15
cabeçalho ucmmanager.h (inclua Ucmcx.h)
IRQL PASSIVE_LEVEL

Consulte também

UcmConnectorCreate