função de retorno de chamada EVT_UCM_CONNECTOR_SET_POWER_ROLE (ucmmanager.h)
A implementação do driver cliente do EVT_UCM_CONNECTOR_SET_POWER_ROLE função de retorno de chamada de evento que define a função de energia do conector para a função especificada quando anexado a um conector de parceiro.
Sintaxe
EVT_UCM_CONNECTOR_SET_POWER_ROLE EvtUcmConnectorSetPowerRole;
NTSTATUS EvtUcmConnectorSetPowerRole(
[in] UCMCONNECTOR Connector,
[in] UCM_POWER_ROLE PowerRole
)
{...}
Parâmetros
[in] Connector
Manipule para o conector que o driver cliente recebeu em uma chamada anterior para o método UcmConnectorCreate .
[in] PowerRole
Um sinalizador do tipo UCM_POWER_ROLE 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_POWER_ROLE, o cliente deve chamar UcmConnectorCreate.
A ucmCx (extensão de estrutura do gerenciador de conectores USB) pode solicitar UcmPowerRoleSink ou UcmPowerRoleSource. 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 energia (PR_Swap). O driver chama UcmConnectorPowerDirectionChanged 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 PR_Swap, o driver do cliente deverá rejeitar a solicitação.
Exemplos
EVT_UCM_CONNECTOR_SET_POWER_ROLE EvtSetPowerRole;
NTSTATUS
EvtSetPowerRole(
UCMCONNECTOR Connector,
UCM_POWER_ROLE PowerRole
)
{
PCONNECTOR_CONTEXT connCtx;
TRACE_INFO("EvtSetPowerRole(%!UCM_POWER_ROLE!) Entry", PowerRole);
connCtx = GetConnectorContext(Connector);
//PR_Swap operation.
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 |