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

A implementação do driver de 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 para a 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 do tipo UCM_TYPEC_PARTNER que especifica a função a ser definida.

Retornar valor

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

Comentários

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

A ucmCx (extensão de estrutura do gerenciador de conectores USB) pode solicitar UcmTypeCPortStateUfp ou UcmTypeCPortStateDfp. Se a porta já estiver na função solicitada, o driver do cliente poderá concluir a solicitação sem nenhuma alteração. Caso contrário, ele iniciará uma operação de troca de função de dados (DR_Swap). O driver chama UcmConnectorDataDirectionChanged para notificar o UcmCx sobre o sucesso ou a 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 do 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
Cliente mínimo com suporte Windows 10
Servidor mínimo com suporte Windows Server 2016
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

Confira também

UcmConnectorCreate