Condividi tramite


EVT_UCM_CONNECTOR_SET_POWER_ROLE funzione di callback (ucmmanager.h)

Implementazione del driver client della funzione di callback dell'evento EVT_UCM_CONNECTOR_SET_POWER_ROLE che imposta il ruolo di alimentazione del connettore sul ruolo specificato quando è collegato a un connettore partner.

Sintassi

EVT_UCM_CONNECTOR_SET_POWER_ROLE EvtUcmConnectorSetPowerRole;

NTSTATUS EvtUcmConnectorSetPowerRole(
  [in] UCMCONNECTOR Connector,
  [in] UCM_POWER_ROLE PowerRole
)
{...}

Parametri

[in] Connector

Gestire il connettore ricevuto dal driver client in una chiamata precedente al metodo UcmConnectorCreate.

[in] PowerRole

Flag UCM_POWER_ROLEtipizzato che specifica il ruolo da impostare.

Valore restituito

Se l'operazione ha esito positivo, la funzione di callback deve restituire STATUS_SUCCESS o un altro valore di stato per cui NT_SUCCESS(status) è TRUE. In caso contrario, deve restituire un valore di stato per il quale NT_SUCCESS(status) è uguale a FALSE.

Osservazioni

Per registrare una funzione di callback EVT_UCM_CONNECTOR_SET_POWER_ROLE, il client deve chiamare UcmConnectorCreare.

L'estensione del framework di gestione connettori USB (UcmCx) può richiedere UcmPowerRoleSink o UcmPowerRoleSource. Se la porta è già nel ruolo richiesto, il driver client può completare la richiesta senza modifiche. In caso contrario, avvia un'operazione di scambio di ruoli di alimentazione (PR_Swap). Il driver chiama UcmConnectorPowerDirectionChanged per notificare a UcmCx l'esito positivo o negativo dell'operazione. Il driver può chiamare tale metodo all'interno della funzione di callback.

Il ruolo persiste per la connessione corrente.

Se un'operazione di scambio di ruoli è in sospeso, UcmCx non richiede un altro scambio di ruoli. Tali operazioni vengono serializzate tra scambi di energia e ruoli dati.

Al termine dell'operazione di scambio, se la porta partner invia una richiesta di PR_Swap, il driver client deve rifiutare la richiesta.

Esempi


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;  
}  

Fabbisogno

Requisito Valore
client minimo supportato Windows 10
server minimo supportato Windows Server 2016
piattaforma di destinazione Finestre
versione minima di KMDF 1.15
versione minima di UMDF 2.15
intestazione ucmmanager.h (include Ucmcx.h)
IRQL PASSIVE_LEVEL

Vedere anche

UcmConnectorCreare