структура BATTERY_WAIT_STATUS

Содержит сведения об условиях, при которых требуется получить состояние батареи. Эта структура используется в коде элемента управления IOCTL_BATTERY_QUERY_STATUS .

Синтаксис

typedef struct _BATTERY_WAIT_STATUS {
  ULONG BatteryTag;
  ULONG Timeout;
  ULONG PowerState;
  ULONG LowCapacity;
  ULONG HighCapacity;
} BATTERY_WAIT_STATUS, *PBATTERY_WAIT_STATUS;

Члены

BatteryTag

Текущий тег батареи для батареи. Могут быть возвращены только сведения для батареи, соответствующие тегу. Всякий раз, когда это значение не соответствует текущему тегу батареи, операция DeviceIoControl завершится ошибкой с кодом ERROR_FILE_NOT_FOUND, который указывает вызывающему объекту, что батарея, для которой у него есть тег, больше не установлена. Вызывающий объект может использовать операцию IOCTL_BATTERY_QUERY_TAG для определения тега вновь установленного аккумулятора. при наличии. Кроме того, если запрос выполняется при извлечении батареи или изменении тега, операция прерывается с состоянием ERROR_FILE_NOT_FOUND. (Дополнительные сведения см. в разделе Теги батареи .)

Timeout

Количество миллисекунд, в течение которых запрос будет ожидать условия, указанного членами PowerState, LowCapacity и HighCapacity , перед завершением. Значение -1 указывает, что запрос будет ждать неограниченное время, пока условия будут выполнены. Нулевое значение указывает, что запрошенные сведения об аккумуляторе должны быть возвращены немедленно, независимо от других условий. Любое другое значение указывает, что запрос должен ожидать этого времени или пока не будет выполнено какое-либо из других условий.

Если компьютер перешел в спящий режим, часы будут продолжать работать, но при исчерпании счетчика компьютер не будет выходить из спящего режима. Если счетчик исчерпан при пробуждении компьютера и выполняются другие условия, вызов возвращается сразу после пробуждения.

PowerState

Ноль, один или несколько из следующих битов состояния, которые указывают состояние батареи. Он идентичен элементу PowerStateструктуры BATTERY_STATUS .

Значение Значение
BATTERY_CHARGING
0x00000004
Указывает, что аккумулятор в данный момент заряжается.
BATTERY_CRITICAL
0x00000008
Указывает, что сбой батареи неизбежен. Дополнительные сведения см. в разделе "Примечания".
BATTERY_DISCHARGING
0x00000002
Указывает, что батарея в настоящее время разрядится.
BATTERY_POWER_ON_LINE
0x00000001
Указывает, что аккумулятор имеет доступ к энергопотреблению переменного тока.

LowCapacity

Текущая емкость батареи в мВт/ч (или относительная). Это значение идентично элементу Capacity структуры BATTERY_STATUS .

HighCapacity

Текущая емкость батареи в мВт/ч (или относительная). Это значение идентично элементу Capacity структуры BATTERY_STATUS .

Комментарии

Запросы на получение сведений об аккумуляторе откладываются до выполнения одного из следующих действий:

  • Истекает время ожидания (при условии , что время ожидания не равно -1).
  • Текущее состояние батареи не соответствует PowerState.
  • Емкость батареи ниже LowCapacity.
  • Емкость батареи превышает highCapacity.
  • Тег батареи изменится.

Когда выполняется одно из этих условий, данные собираются и операция возвращается. Это позволяет приложениям отслеживать типичную динамическую информацию о батарее без опроса устройства.

Прежде чем использовать одно из двух условий емкости, убедитесь, что аккумулятор поддерживает их, используя код управления IOCTL_BATTERY_QUERY_STATUS с нулевым временем ожидания. Изучите результаты, чтобы определить, поддерживается ли член Capacity (т. е. не BATTERY_UNKNOWN_CAPACITY).

Требования

Требование Значение
Минимальная версия клиента
Windows XP [только классические приложения]
Минимальная версия сервера
Windows Server 2003 [только классические приложения]
Заголовок
Poclass.h;
Batclass.h в Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP

См. также раздел

BATTERY_STATUS

IOCTL_BATTERY_QUERY_STATUS

IOCTL_BATTERY_QUERY_TAG