Freigeben über


Akkuinformationen

Batterien können Energie für tragbare Computer und Computer bereitstellen, die auf einer nicht unterbrechungsfähigen Stromversorgung (USV) ausgeführt werden. Auf diesen Computern stellt das Betriebssystem Informationen zum Zustand des Akkus bereit, damit Anwendungen nützliche Funktionen für den Benutzer bereitstellen können. (Einige ältere nicht standardmäßige Akkusysteme und UPS werden nicht unterstützt.)

Beachten Sie, dass Diese Übersicht davon ausgeht, dass Sie mit Geräteverwaltungvertraut sind.

Um Informationen zum Akkustatus zu erhalten, verwenden Sie die GetSystemPowerStatus--Funktion, die allgemeine Informationen zu allen Stromquellen im System zurückgibt. Sie sollten GetSystemPowerStatus verwenden.

In einigen Fällen sind jedoch detaillierte Informationen zu jeder einzelnen Batterie erforderlich. Zu diesem Zweck macht jedes Akkugerät eine IOCTL-Schnittstelle verfügbar. Die folgenden IOCTL-Vorgänge werden mithilfe der DeviceIoControl--Funktion ausgeführt:

IOCTL_BATTERY_QUERY_INFORMATION
IOCTL_BATTERY_QUERY_STATUS
IOCTL_BATTERY_QUERY_TAG
IOCTL_BATTERY_SET_INFORMATION

Um diese Schnittstelle zu verwenden, muss eine Anwendung mehrere Schritte ausführen. Zunächst müssen Setuproutinen zum Aufzählen aller Geräte mit einer Akkuklassenschnittstelle verwendet werden. Beachten Sie, dass diese Geräte die Akkuports darstellen und keine tatsächlichen Batterien im System vorhanden sind. Die Anwendung muss dann ein Handle für jedes Gerät öffnen, damit es die DeviceIoControl--Funktion verwenden kann, um Anforderungen an das Gerät zu senden, und dann Tags für alle batterien abrufen, die eingefügt werden. Nach Abschluss dieser Schritte kann die Anwendung Abfragen an jedes Akkugerät senden.

Akkutags

Da jedes Akkugerät einen Steckplatz darstellt, in den ein Akku eingelegt werden kann, muss es eine Möglichkeit geben, zu bestimmen, wann der Akku entfernt und wieder eingesteckt, ersetzt oder auf andere Weise geändert wird. Zu diesem Zweck wird jedem Akku in einem bestimmten Steckplatz ein Tag zugewiesen. Dieses Tag muss für alle Abfragen für Informationen verwendet werden. Wenn das von der Anwendung bereitgestellte Tag nicht mit dem Akku übereinstimmt, schlägt die Abfrage fehl, was angibt, dass sich der Akku in irgendeiner Weise geändert hat. Um die Abfrage erfolgreich abzuschließen, ist ein neues Akkutag erforderlich. Rufen Sie das Tag mithilfe des IOCTL_BATTERY_QUERY_TAG-Vorgangs ab. Wenn ein Akku in diesem Steckplatz vorhanden ist, kann das zurückgegebene Tag an einen der anderen Akku-IOCTLs übergeben werden, um andere Funktionen auszuführen. Bei einem Mehrbatteriesystem gibt jedes Akkugerät (Steckplatz) akkutags unabhängig aus, sodass das Tag von zwei separaten Geräten manchmal identisch sein könnte.

Eine Änderung des Akkutags bedeutet nicht unbedingt, dass der Akku entfernt und wieder ein- oder ersetzt wurde. Ein neues Tag kann generiert werden, wenn eine Änderung an daten vorhanden ist, die normalerweise statisch wären. Wenn z. B. eine Batterie geladen wird, kann sich die letzte vollständig geladene Kapazität geändert haben. Das Tag kann sich auch ändern, wenn die Akkukommunikation vorübergehend verloren ging oder eine fehlerhafte Benachrichtigung über das BIOS aufgetreten ist. Bei einigen Systemen wird das Akkutag möglicherweise aktualisiert, wenn sich der Ac-Status ändert. Dieses Verhalten ist auf ein Merkmal des Batteriesystems zurückzuführen und ist nicht üblich.

Wenn das Akkutag aktualisiert wird, sollte der Akku so behandelt werden, als wäre es ein neuer Akku, und alle zwischengespeicherten Daten sollten erneut gelesen werden. Wenn eine Anwendung wissen muss, ob der gleiche physische Akku vorhanden ist, sollte der Wert BatteryUniqueID im Ausgabepuffer von IOCTL_BATTERY_QUERY_INFORMATION überprüft werden, wenn er mit der BatteryUniqueID Informationsebene aufgerufen wird.

zu Power Management-

Aufzählen von Akkugeräten