Sdílet prostřednictvím


Informace o baterii

Baterie mohou poskytovat napájení pro přenosné počítače a počítače běžící na nepřerušitelném napájecím zdroji (UPS). V těchto počítačích operační systém poskytuje informace o stavu baterie, aby aplikace mohly poskytovat užitečné funkce pro uživatele. (Některé starší nestandardní systémy baterie a systémy UPS nejsou podporovány.)

Všimněte si, že tento přehled předpokládá, že znáte správy zařízení.

Chcete-li získat informace o stavu baterie, použijte funkci GetSystemPowerStatus, která vrací obecné informace o všech zdrojích napájení v systému. Pokud je to možné, měli byste použít GetSystemPowerStatus.

V některých případech je však nutné podrobné informace o jednotlivých bateriích. Pro tento účel každé zařízení baterie zveřejňuje rozhraní IOCTL. Následující operace IOCTL se provádějí pomocí funkce DeviceIoControl:

IOCTL_BATTERY_QUERY_INFORMATION
IOCTL_BATTERY_QUERY_STATUS
IOCTL_BATTERY_QUERY_TAG
IOCTL_BATTERY_SET_INFORMATION

Pokud chcete toto rozhraní použít, musí aplikace postupovat několika kroky. Nejprve musí použít instalační rutiny k vytvoření výčtu všech zařízení, která mají rozhraní třídy baterie. Všimněte si, že tato zařízení představují porty baterie, nikoli skutečné baterie, které jsou přítomné v systému. Aplikace pak musí otevřít popisovač pro každé zařízení, aby mohl použít funkci DeviceIoControl k odesílání požadavků na zařízení a získání značek pro všechny vložené baterie. Po dokončení těchto kroků může aplikace odesílat dotazy na každé zařízení baterie.

Značky baterie

Vzhledem k tomu, že každé zařízení baterie představuje slot, do kterého lze vložit baterii, musí existovat způsob, jak určit, kdy je baterie odstraněna a znovu vložena, nahrazena nebo změněna jiným způsobem. K tomu je každé baterii v určitém slotu přiřazena značka. Tato značka musí být použita pro všechny dotazy na informace. Pokud značka poskytovaná aplikací neodpovídá baterii, dotaz se nezdaří, což značí aplikaci, že se baterie nějakým způsobem změnila. K úspěšnému dokončení dotazu se vyžaduje nová značka baterie. Získejte značku pomocí operace IOCTL_BATTERY_QUERY_TAG. Pokud se v daném slotu nachází baterie, může být vrácená značka předána jakékoli jiné sadě IOCTLs baterie, aby prováděla jiné funkce. V systému s více bateriemi každé zařízení baterie (slot) vydává značky baterie nezávisle, takže značka ze dvou samostatných zařízení může být někdy stejná.

Změna značky baterie nemusí nutně znamenat, že baterie byla odstraněna a znovu vložena nebo nahrazena. Novou značku je možné vygenerovat, pokud dojde ke změně dat, která by normálně byla statická. Například při nabíjení baterie se může změnit poslední plně nabitá kapacita. Značka se může také změnit, pokud došlo k dočasné ztrátě komunikace baterie nebo pokud došlo k nesprávnému oznámení ze systému BIOS. V některých systémech může být značka baterie aktualizována vždy, když se změní stav AC. Toto chování je způsobeno charakteristikou systému baterie a není běžné.

Při každé aktualizaci značky baterie by se baterie měla považovat za novou baterii a všechna data uložená v mezipaměti by se měla znovu přečíst. Pokud aplikace potřebuje vědět, jestli existuje stejná fyzická baterie, měla by zkontrolovat hodnotu BatteryUniqueID ve výstupní vyrovnávací paměti IOCTL_BATTERY_QUERY_INFORMATION při zavolání s BatteryUniqueID úroveň informací.

o řízení spotřeby

výčet zařízení baterie