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 |