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 |