SYSTEM_POWER_STATUS_EX (coredll)
Last changed: -12.30.230.138

.
Summary
This structure contains information about the power status of the system.

C# Definition:

[StructLayout(LayoutKind.Sequential)]
internal class SYSTEM_POWER_STATUS_EX
{
   public byte ACLineStatus = 0;
   public byte BatteryFlag = 0;
   public byte BatteryLifePercent = 0;
   public byte Reserved1 = 0;
   public uint BatteryLifeTime = 0;
   public uint BatteryFullLifeTime = 0;
   public byte Reserved2 = 0;
   public byte BackupBatteryFlag = 0;
   public byte BackupBatteryLifePercent = 0;
   public byte Reserved3 = 0;
   public uint BackupBatteryLifeTime = 0;
   public uint BackupBatteryFullLifeTime = 0;
}

VB Definition:

Structure SYSTEM_POWER_STATUS_EX
   Public ACLineStatus As Byte
   Public BatteryFlag As Byte
   Public BatteryLifePercent As Byte
   Public Reserved1 As Byte
   Public BatteryLifeTime As Int32
   Public BatteryFullLifeTime As Int32
   Public Reserved2 As Byte
   Public BatteryBackupFlag As Byte
   Public BackupBatteryLifePercent As Byte
   Public Reserved3 As Byte
   Public BackupBatteryLifeTime As Int32
   Public BackupBatteryFullLifeTime As Int32
End Structure

User-Defined Field Types:

None.

Notes:

ACLineStatus

AC power status. It is one of the following values.

Value Description
0 Offline
1 Online
2 Backup
255 Unknown status

All other values are reserved.

C# Definition:

const byte AC_LINE_OFFLINE  = 0x00;
const byte  AC_LINE_ONLINE  = 0x01;
const byte AC_LINE_BACKUP_POWER  = 0x02;
const byte AC_LINE_UNKNOWN  = 0xFF;

BatteryFlag

    Battery charge status. It can be a combination of the following values:

BatteryLifePercent

    Percentage of full battery charge remaining. This member can be a value in the range 0 to 100, or 255 if status is unknown. All other values are reserved.

Reserved1

    Reserved; set to zero.

BatteryLifeTime

    Number of seconds of battery life remaining, or 0xFFFFFFFF if remaining seconds are unknown.

BatteryFullLifeTime

    Number of seconds of battery life when at full charge, or 0xFFFFFFFF if full lifetime is unknown.

Reserved2

    Reserved; set to zero.

BackupBatteryFlag

    Backup battery charge status. It can be a combination of the following values:

C# Definition:

const byte BATTERY_FLAG_HIGH  = 0x01;
const byte BATTERY_FLAG_LOW  = 0x02;
const byte BATTERY_FLAG_CRITICAL  = 0x04;
const byte BATTERY_FLAG_CHARGING  = 0x08;
const byte BATTERY_FLAG_NO_BATTERY  = 0x80;
const byte BATTERY_FLAG_UNKNOWN  = 0xFF;
const byte BATTERY_PERCENTAGE_UNKNOWN  = 0xFF;
const uint BATTERY_LIFE_UNKNOWN  = 0xFFFFFFFF;

BackupBatteryLifePercent

    Percentage of full backup battery charge remaining. Must be in the range 0 to 100, or BATTERY_PERCENTAGE_UNKNOWN.

Reserved3

    Reserved; set to zero

BackupBatteryLifeTime

    Number of seconds of backup battery life remaining, or BATTERY_LIFE_UNKNOWN if remaining seconds are unknown.

BackupBatteryFullLifeTime

    Number of seconds of backup battery life when at full charge, or BATTERY_LIFE_UNKNOWN if full lifetime is unknown.

Documentation