Partager via


EVT_UCM_CONNECTOR_SET_POWER_ROLE fonction de rappel (ucmmanager.h)

Implémentation du pilote client de la fonction de rappel d’événement EVT_UCM_CONNECTOR_SET_POWER_ROLE qui définit le rôle d’alimentation du connecteur sur le rôle spécifié lorsqu’il est attaché à un connecteur partenaire.

Syntaxe

EVT_UCM_CONNECTOR_SET_POWER_ROLE EvtUcmConnectorSetPowerRole;

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

Paramètres

[in] Connector

Gérez le connecteur reçu par le pilote client lors d’un appel précédent à la méthode UcmConnectorCreate.

[in] PowerRole

Indicateur UCM_POWER_ROLE-typé qui spécifie le rôle à définir.

Valeur de retour

Si l’opération réussit, la fonction de rappel doit retourner STATUS_SUCCESS, ou une autre valeur d’état pour laquelle NT_SUCCESS(status) a la valeur TRUE. Sinon, il doit retourner une valeur d’état pour laquelle NT_SUCCESS(status) a la valeur FALSE.

Remarques

Pour inscrire une fonction de rappel EVT_UCM_CONNECTOR_SET_POWER_ROLE, le client doit appeler UcmConnectorCreate.

L’extension de framework du gestionnaire de connecteur USB (UcmCx) peut demander UcmPowerRoleSink ou UcmPowerRoleSource. Si le port se trouve déjà dans le rôle demandé, le pilote client peut terminer la requête sans aucune modification. Sinon, il démarre une opération d’échange de rôle d’alimentation (PR_Swap). Le pilote appelle UcmConnectorPowerDirectionChanged pour informer UcmCx de la réussite ou de l’échec de cette opération. Le pilote peut appeler cette méthode dans la fonction de rappel.

Le rôle persiste pour la connexion actuelle.

Si une opération d’échange de rôle est en attente, UcmCx ne demande pas d’autre échange de rôle. Ces opérations sont sérialisées entre les échanges de rôle de puissance et de données.

Une fois l’opération d’échange terminée, si le port partenaire envoie une demande de PR_Swap, le pilote client doit rejeter la demande.

Exemples


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

Exigences

Exigence Valeur
client minimum pris en charge Windows 10
serveur minimum pris en charge Windows Server 2016
plateforme cible Windows
version minimale de KMDF 1.15
version minimale de UMDF 2.15
d’en-tête ucmmanager.h (include Ucmcx.h)
IRQL PASSIVE_LEVEL

Voir aussi

UcmConnectorCreate