Compartilhar via


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

Confira também

UcmConnectorCreate