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 |