EVT_UCM_CONNECTOR_SET_POWER_ROLE Rückruffunktion (ucmmanager.h)

Die Implementierung der EVT_UCM_CONNECTOR_SET_POWER_ROLE Ereignisrückruffunktion des Clienttreibers, die die Energierolle des Connectors auf die angegebene Rolle festlegt, wenn sie an einen Partnerconnector angefügt wird.

Syntax

EVT_UCM_CONNECTOR_SET_POWER_ROLE EvtUcmConnectorSetPowerRole;

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

Parameter

[in] Connector

Behandeln Sie den Connector, den der Clienttreiber bei einem vorherigen Aufruf der UcmConnectorCreate-Methode erhalten hat.

[in] PowerRole

Ein UCM_POWER_ROLE typisiertes Flag, das die festzulegende Rolle angibt.

Rückgabewert

Wenn der Vorgang erfolgreich ist, muss die Rückruffunktion STATUS_SUCCESS oder einen anderen status Wert zurückgeben, für den NT_SUCCESS(status) true entspricht. Andernfalls muss ein status Wert zurückgegeben werden, für den NT_SUCCESS(status) false entspricht.

Hinweise

Um eine EVT_UCM_CONNECTOR_SET_POWER_ROLE Rückruffunktion zu registrieren, muss der Client UcmConnectorCreate aufrufen.

Die USB-Connector-Manager-Frameworkerweiterung (UcmCx) kann entweder UcmPowerRoleSink oder UcmPowerRoleSource anfordern. Wenn sich der Port bereits in der angeforderten Rolle befindet, kann der Clienttreiber die Anforderung ohne Änderungen abschließen. Andernfalls wird ein Power-Role-Swap-Vorgang (PR_Swap) gestartet. Der Treiber ruft UcmConnectorPowerDirectionChanged auf, um UcmCx über den Erfolg oder Fehler dieses Vorgangs zu benachrichtigen. Der Treiber kann diese Methode innerhalb der Rückruffunktion aufrufen.

Die Rolle bleibt für die aktuelle Verbindung erhalten.

Wenn ein Rollentauschvorgang aussteht, fordert UcmCx keinen weiteren Rollentausch an. Diese Vorgänge werden über Strom- und Datenrollenwechsel serialisiert.

Wenn der Partnerport nach Abschluss des Auslagerungsvorgangs eine PR_Swap-Anforderung sendet, muss der Clienttreiber die Anforderung ablehnen.

Beispiele


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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10
Unterstützte Mindestversion (Server) Windows Server 2016
Zielplattform Windows
KMDF-Mindestversion 1.15
UMDF-Mindestversion 2.15
Kopfzeile ucmmanager.h (include Ucmcx.h)
IRQL PASSIVE_LEVEL

Weitere Informationen

UcmConnectorCreate