Condividi tramite


EVT_UCM_CONNECTOR_SET_DATA_ROLE funzione di callback (ucmmanager.h)

Implementazione del driver client della funzione di callback dell'evento EVT_UCM_CONNECTOR_SET_DATA_ROLE che scambia il ruolo dati del connettore al ruolo specificato quando è collegato a un connettore partner.

Sintassi

EVT_UCM_CONNECTOR_SET_DATA_ROLE EvtUcmConnectorSetDataRole;

NTSTATUS EvtUcmConnectorSetDataRole(
  [in] UCMCONNECTOR Connector,
  [in] UCM_DATA_ROLE DataRole
)
{...}

Parametri

[in] Connector

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

[in] DataRole

Flag tipizzato UCM_TYPEC_PARTNER 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.

Commenti

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

L'estensione del framework di gestione connettori USB (UcmCx) può richiedere UcmTypeCPortStateUfp o UcmTypeCPortStateDfp. Se la porta è già nel ruolo richiesto, il driver client può completare la richiesta senza alcuna modifica. In caso contrario, avvia un'operazione di scambio dei ruoli dati (DR_Swap). Il driver chiama UcmConnectorDataDirectionChanged 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. 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 DR_Swap, il driver client deve rifiutare la richiesta.

Esempio


EVT_UCM_CONNECTOR_SET_DATA_ROLE     EvtSetDataRole;  

NTSTATUS  
EvtSetDataRole(  
    UCMCONNECTOR  Connector,  
    UCM_TYPE_C_PORT_STATE DataRole  
    )  
{  
    PCONNECTOR_CONTEXT connCtx;  
  
    TRACE_INFO("EvtSetDataRole(%!UCM_TYPE_C_PORT_STATE!) Entry", DataRole);  
  
    connCtx = GetConnectorContext(Connector);

  
    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 (include Ucmcx.h)
IRQL PASSIVE_LEVEL

Vedi anche

UcmConnectorCreate