EVT_UCM_CONNECTOR_SET_POWER_ROLE fonction de rappel (ucmmanager.h)
L’implémentation par le 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 que le pilote client a reçu lors d’un appel précédent à la méthode UcmConnectorCreate .
[in] PowerRole
Indicateur de type UCM_POWER_ROLE 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, il doit retourner une valeur status pour laquelle NT_SUCCESS(status) est 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 connecteurs USB (UcmCx) peut demander UcmPowerRoleSink ou UcmPowerRoleSource. 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 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ôles d’alimentation 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;
}
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 |