Share via


EVT_UCM_CONNECTOR_SET_DATA_ROLE fonction de rappel (ucmmanager.h)

Implémentation par le pilote client de la fonction de rappel d’événement EVT_UCM_CONNECTOR_SET_DATA_ROLE qui permute le rôle de données du connecteur vers le rôle spécifié lorsqu’il est attaché à un connecteur partenaire.

Syntaxe

EVT_UCM_CONNECTOR_SET_DATA_ROLE EvtUcmConnectorSetDataRole;

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

Paramètres

[in] Connector

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

[in] DataRole

Indicateur UCM_TYPEC_PARTNER qui spécifie le rôle à définir.

Valeur retournée

Si l’opération réussit, la fonction de rappel doit retourner STATUS_SUCCESS, ou une autre valeur status pour laquelle NT_SUCCESS(status) est égal à TRUE. Sinon, elle doit retourner une valeur de status pour laquelle NT_SUCCESS(status) est false.

Remarques

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

L’extension d’infrastructure du gestionnaire de connecteurs USB (UcmCx) peut demander UcmTypeCPortStateUfp ou UcmTypeCPortStateDfp. Si le port est déjà dans le rôle demandé, le pilote client peut effectuer la demande sans aucune modification. Sinon, il démarre une opération d’échange de rôle de données (DR_Swap). Le pilote appelle UcmConnectorDataDirectionChanged 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ôles d’alimentation et de données.

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

Exemples


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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10
Serveur minimal pris en charge Windows Server 2016
Plateforme cible Windows
Version KMDF minimale 1.15
Version UMDF minimale 2.15
En-tête ucmmanager.h (inclure Ucmcx.h)
IRQL PASSIVE_LEVEL

Voir aussi

UcmConnectorCreate