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 |