Compartilhar via


EVT_UCM_CONNECTOR_SET_POWER_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_POWER_ROLE que define a função de energia do conector para a função especificada quando anexada 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 UCM_POWER_ROLEdigitado 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_POWER_ROLE, o cliente deve chamar ucmConnectorCreate.

A extensão da estrutura do gerenciador de conectores USB (UcmCx) pode solicitar UcmPowerRoleSink ou ucmPowerRoleSource. 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 energia (PR_Swap). O driver chama ucmConnectorPowerDirectionChanged para notificar a UcmCx sobre o sucesso 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 PR_Swap, o driver 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
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