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 ist.
Syntax
EVT_UCM_CONNECTOR_SET_POWER_ROLE EvtUcmConnectorSetPowerRole;
NTSTATUS EvtUcmConnectorSetPowerRole(
[in] UCMCONNECTOR Connector,
[in] UCM_POWER_ROLE PowerRole
)
{...}
Parameter
[in] Connector
Handle to the connector that the client driver received in a previous call to the UcmConnectorCreate method.
[in] PowerRole
Ein UCM_POWER_ROLE-typed-Flag, das die festzulegende Rolle angibt.
Rückgabewert
Wenn der Vorgang erfolgreich ist, muss die Rückruffunktion STATUS_SUCCESS oder einen anderen Statuswert zurückgeben, für den NT_SUCCESS(Status) WAHR ist. Andernfalls muss ein Statuswert zurückgegeben werden, für den NT_SUCCESS(Status) FALSE entspricht.
Bemerkungen
Um eine EVT_UCM_CONNECTOR_SET_POWER_ROLE Rückruffunktion zu registrieren, muss der Client UcmConnectorCreateaufrufen.
Die USB Connector Manager Framework-Erweiterung (UcmCx) kann entweder UcmPowerRoleSink oder UcmPowerRoleSourceanfordern. Wenn sich der Port bereits in der angeforderten Rolle befindet, kann der Clienttreiber die Anforderung ohne Änderungen abschließen. Andernfalls wird ein Stromtauschvorgang (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 wird für die aktuelle Verbindung beibehalten.
Wenn ein Rollentauschvorgang aussteht, fordert UcmCx keinen anderen Rollentausch an. Diese Vorgänge werden über Strom- und Datenrollentausch hinweg serialisiert.
Nach Abschluss des Swapvorgangs muss der Clienttreiber die Anforderung ablehnen, wenn der Partnerport eine PR_Swap Anforderung sendet.
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 |
---|---|
mindestens unterstützte Client- | Windows 10 |
mindestens unterstützte Server- | Windows Server 2016 |
Zielplattform- | Fenster |
Minimale KMDF-Version | 1.15 |
Mindest-UMDF-Version | 2.15 |
Header- | ucmmanager.h (include Ucmcx.h) |
IRQL- | PASSIVE_LEVEL |