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 |