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 |