Condividi tramite


EVT_UCM_CONNECTOR_SET_POWER_ROLE funzione di callback (ucmmanager.h)

L'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_ROLE tipizzato 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(stato) equivale a TRUE. In caso contrario, deve restituire un valore di stato per il quale NT_SUCCESS(stato) equivale a FALSE.

Commenti

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

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 di tale 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. Queste operazioni vengono serializzate tra gli scambi di ruoli di alimentazione e dati.

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

Esempio


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

Requisiti

Requisito Valore
Client minimo supportato Windows 10
Server minimo supportato Windows Server 2016
Piattaforma di destinazione Windows
Versione KMDF minima 1.15
Versione UMDF minima 2.15
Intestazione ucmmanager.h (includere Ucmcx.h)
IRQL PASSIVE_LEVEL

Vedi anche

UcmConnectorCreate