Freigeben über


EVT_UCM_CONNECTOR_SET_DATA_ROLE Rückruffunktion (ucmmanager.h)

Die Implementierung der EVT_UCM_CONNECTOR_SET_DATA_ROLE Ereignisrückruffunktion des Clienttreibers, die die Datenrolle des Connectors an die angegebene Rolle austauscht, wenn sie an einen Partnerconnector angefügt wird.

Syntax

EVT_UCM_CONNECTOR_SET_DATA_ROLE EvtUcmConnectorSetDataRole;

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

Parameter

[in] Connector

Verarbeiten Sie den Connector, den der Clienttreiber bei einem vorherigen Aufruf der UcmConnectorCreate-Methode empfangen hat.

[in] DataRole

Ein UCM_TYPEC_PARTNER 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) gleich TRUE ist. Andernfalls muss ein status Wert zurückgegeben werden, für den NT_SUCCESS(status) gleich FALSE ist.

Hinweise

Um eine EVT_UCM_CONNECTOR_SET_DATA_ROLE Rückruffunktion zu registrieren, muss der Clienttreiber UcmConnectorCreate aufrufen.

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

Die Rolle wird für die aktuelle Verbindung beibehalten.

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

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

Beispiele


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

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 (ucmcx.h einschließen)
IRQL PASSIVE_LEVEL

Weitere Informationen

UcmConnectorErstellen