Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit der Einführung von USB Typ-C könnte ein Benutzer eine suboptimale Stromquelle verwenden, um sein System aufzuladen. In diesem Artikel wird beschrieben, wie Hardware- und Firmwareanbieter Windows-Benachrichtigungen verwenden können, wenn ein Benutzer eine USB-Typ-C-Stromquelle einsteckt, was zu einem suboptimalen Strombereitstellungsvertrag führt.
USB-Typ-C-Ladevorgang
Um Benutzern eine konsistente Erfahrung zu bieten, hat Microsoft die Systemzertifizierungsanforderung USBTypeCCharging definiert. Die Anforderung besagt, dass, wenn ein System mit einem Akku USB-Typ-C-Ports enthält, die zum Aufladen des Systems verwendet werden können, diese Ports zusätzlich zu den USB-Spezifikationen Typ-C und Power Delivery (PD) die folgenden Anforderungen erfüllen müssen:
- Das System muss in der Lage sein, über einen toten Akku über ein USB Typ-C-Ladegerät aufzuladen, das genügend Strom für das System bereitstellt.
- Alle USB-Typ-C-Anschlüsse des Systems müssen das Aufladen des Systems unterstützen.
- Alle USB-Typ-C-Ports des Systems müssen die Beschaffung mit 15 Watt unterstützen.
- Systeme müssen das Laden von jedem PD-konformen Ladegerät zulassen, das ausreichend Strom für das System bereitstellt.
- Systeme und Software müssen alle PD-konformen Stromquellen (z. B. Ladegerät, Hub, Dock) unabhängig vom Hersteller gleich behandeln.
- Alle USB Typ-C-Ladebenachrichtigungen müssen auf integrierten Windows-Benachrichtigungen basieren und nicht von Software von Drittanbietern bereitgestellt werden.
Windows kann den Benutzer benachrichtigen, wenn er ein Ladegerät oder eine Ladestation ansteckt, die einen geringeren Stromvertrag ausgehandelt hat, als das, was das Gerät für eine optimale Aufladung benötigt. Dieses Feature ist auf allen Computern mit USB-Typ-C-Connectors vorhanden, die von den folgenden UcmCx-Treibertypen verwaltet werden:
- Auf UCSI-fähigen Computern verwaltet der UCM-UCSI ACPI-Clienttreiber im Posteingang USB-Typ-C-Anschlüsse. Diese Lösung wird empfohlen, da sie von Windows bereitgestellte Treiber verwendet und nicht von einem OEM oder IHV abhängig ist, der einen eigenen Treiber entwickelt.
- UcmCx-Clienttreiber für Computer, die PD-Zustandscomputer in Hardware oder Firmware implementiert haben und nicht UCSI-konform sind.
UCSI-fähige Computer
UCSI-fähige Computer verfügen in der Regel über einen eingebetteten Controller, der ppm-Firmware (Platform Policy Manager) enthält, um PD-Zustandscomputer zu verwalten. Diese Verwaltung ist für den Betriebssystemrichtlinien-Manager (OS Policy Manager, OPM) transparent, eine Entität im Betriebssystem, die vom UCSI-Treiber für den Posteingang implementiert wird. Das PPM verwendet den in der UCSI-Spezifikation festgelegten Interaktionsmechanismus, um mit dem OPM zu interagieren.
Im Folgenden finden Sie Mechanismen, mit denen ein PPM OPM über langsames Laden benachrichtigen kann. Langsames Aufladen wird nur an Windows gemeldet, wenn die Energierolle des Connectors der Stromverbraucher ist.
Eine Benachrichtigung vom PPM an den OPM, wobei der Connector Change Indicator (CCI) auf die Connectornummer festgelegt ist, von der die Benachrichtigung über langsames Laden kommen soll. Als Reaktion auf diese Benachrichtigung sendet der OPM einen GET_CONNECTOR_STATUS UCSI-Befehl an das PPM. Das PMM sollte auf diesen Befehl mit GET_CONNECTOR_STATUS Daten mit den folgenden Bits reagieren.
- Anschluss status ändern (16-0) Akkuladung status Ändern des Bits auf 1 festgelegt.
- Akkuladefähigkeit status (65-64) eingestellt auf nicht aufladen (Wert 0), langsame Laderate (Wert 2) oder sehr langsame Laderate (Wert 3).
Wenn beim Herunterfahren des Computers oder in Sx (x > 0) ein langsames Ladegerät angeschlossen ist, muss das PPM die Akkuladefunktion status so festlegen, dass sie einen der drei oben in 1b genannten Werte widerspiegelt, wenn opm nach dem Start oder der Sx-Fortsetzung GET_CONNECTOR_STATUS an PPM sendet. Beim Sx-Fortsetzen sendet der OPM in der Regel den befehl GET_CONNECTOR_STATUS nach einem PPM_RESET an das PPM.
Wenn hingegen ein Nominalladegerät angeschlossen ist, wenn sich die Maschine in Sx (x>0) befindet, erwartet OPM, dass GET_CONNECTION_STATUS Daten die Akkuladefunktion status Feld (65-64) auf nominale Laderate (Wert 1) festgelegt ist, wenn OPM GET_CONNECTOR_STATUS sendet.
Besondere Berücksichtigung für BatteryChargingCapabilityStatus::NotCharging (Wert 0)
GET_CONNECTOR_STATUS::Batter Ladefunktionsstatus ist der "Not Charging" -Wert 0, was auch der Standardwert ist. Daher kann OPM nicht feststellen, ob die status s ein Standardwert ist, wenn der Stecker nicht den Akkuladevorgang (16-0) ändern status Änderungsbit auf 1 festgelegt ist. Wenn dieses Bit auf 0 festgelegt ist, ignoriert das Betriebssystem möglicherweise die Akkuladung status, wenn der status nicht aufgeladen ist.
Daher wäre unsere dringende Empfehlung an PPM, immer den Stecker status Batterieladevorgang (16-0) festzulegen, status bit auf 1 zu ändern, wenn nicht/langsames/sehr langsames Laden gemeldet wird. Diese Empfehlung besteht darin, die PPM-Implementierung für die Verwaltung des Ladestatus zu vereinfachen.
Sonderfall für langsames und sehr langsames Laden
Dieser Abschnitt enthält keine spezifischen Empfehlungen für OEMs, IHVs oder UCSI-Firmwarebesitzer. Beschreibt vielmehr eine bestimmte Logik, die der UCSI-Treiber des Posteingangs zum Aufladen von Benachrichtigungen verwendet, die beim Entwerfen der UCSI-Firmware möglicherweise nützliche Kenntnisse sind.
Bei der ersten Benachrichtigung nach einer Partneranfügung meldet der UCSI-Treiber nach dem Abrufen der Antwortdaten von GET_CONNECTOR_STATUS ein langsames Aufladen an das Betriebssystem, auch wenn der Anschluss status Wechsel (16-0) des Akkuladevorgangs status Änderungsbit nicht auf 1 festgelegt ist, wenn die folgenden Bedingungen zutreffen:
- Connector status Änderung (16-0): ConnectChange gibt an, dass dies die erste Anfügungsbenachrichtigung des Partners ist.
- Die Akkuladefunktion status (62-65) ist auf den Wert 2 oder 3 festgelegt.
Der Grund für dieses Verhalten ist, dass der UCSI-Treiber nicht weiß, ob das Nichtladen beabsichtigt war, da sein Wert 0 ist, was auch der Standardwert ist. Die Werte 2 und 3 können jedoch verarbeitet werden, ohne sich auf das Aufladen des Akkus status zu verlassen. Weitere Informationen finden Sie im nächsten Abschnitt.
UCSI-Konformitätstest
Da der optimale Stromvertrag für den Computer spezifisch ist, bietet Windows keine Tests für Popupbenachrichtigungen mit langsamem oder nicht aufladen unter Windows, da der Test nun wissen würde, mit welchen Leistungsstufen die Benachrichtigung überprüft werden soll. Es wird jedoch empfohlen, dass OEMs überprüfen, ob ihre Akkuladebenachrichtigungen von PPM an OPM wie erwartet funktionieren, indem sie den folgenden UCSI-Konformitätstest verwenden, der USB Type-C MUTT als Portpartner verwendet:
UCMCx-Clienttreiber
UcmCx-Clienttreiber verwalten USB-Typ-C-Connectors, ohne die UCSI-Spezifikationen zu erfüllen. Neben anderen Informationen zu USB-Typ-C-Anschlüssen an das Betriebssystem hält die Klassenerweiterung das Betriebssystem über die Änderungen der Ladestufen des USB-Typ-C-Anschlusses auf dem Laufenden. Hier sind UmCx-DDIs mit einem Clienttreiber, die das Betriebssystem über UCM_CHARGING_STATE der Connectors informieren können.
UcmConnectorTypeCAttach: Wenn ein neuer Portpartner gemeldet wird, der an UCM angefügt ist, kann ein Client den Ladezustand mithilfe des Eingabeparameters UCM_CONNECTOR_TYPEC_ATTACH_PARAMS::ChargingState melden.
UcmConnectorPdConnectionStateChanged: Beim Melden der RDO an UCM für den ausgehandelten Stromvertrag. Der Client kann den Ladezustand mithilfe von UCM_CONNECTOR_PD_CONN_STATE_CHANGED_PARAMS::ChargingState melden.
UcmConnectorChargingStateChanged: Bei jeder Gelegenheit, bei der der Clienttreiber den Ladezustand auf das Betriebssystem aktualisieren möchte. Param2 dieses DDI enthält den Ladezustand des Steckers.
Betrachten Sie die folgenden Werte der Enumeration UCM_CHARGING_STATE , um dem Benutzer die Popupbenachrichtigung anzuzeigen:
- UcmChargingStateNotCharging
- UcmChargingStateSlowCharging
- UcmChargingStateTrickleCharging