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。 (有关详细信息,请参阅 电池标记 。)

超时

请求在完成之前等待 PowerStateLowCapacityHighCapacity 成员指定的条件的毫秒数。 值 -1 表示请求将无限期等待条件得到满足。 值为零表示将立即返回请求的电池信息,而不考虑其他条件。 任何其他值指示请求应等待该时间长度,或直到满足任何其他条件之一。

如果计算机已进入睡眠模式,时钟将继续运行,但耗尽计数不会唤醒计算机。 如果在唤醒计算机时计数已用完,并且满足其他条件,则唤醒时将立即返回调用。

PowerState

零位、一个或多个以下状态位,指示电池的状态。 它与 BATTERY_STATUS 结构的 PowerState 成员相同。

含义
BATTERY_CHARGING
0x00000004
指示电池当前正在充电。
BATTERY_CRITICAL
0x00000008
指示电池即将发生故障。 有关详细信息,请参阅备注部分。
BATTERY_DISCHARGING
0x00000002
指示电池当前正在放电。
BATTERY_POWER_ON_LINE
0x00000001
指示电池可以访问交流电源。

LowCapacity

当前电池容量,以 mWh (或相对) 为单位。 此值与 BATTERY_STATUS 结构的 Capacity 成员相同。

HighCapacity

当前电池容量,以 mWh (或相对) 为单位。 此值与 BATTERY_STATUS 结构的 Capacity 成员相同。

备注

电池信息请求将推迟,直到发生以下情况之一:

  • 如果超时值不是 -1) ,则超时 (过期。
  • 电池的当前状态与 PowerState 不匹配。
  • 电池的容量低于 LowCapacity
  • 电池的容量高于 HighCapacity
  • 电池标记更改。

如果满足上述任一条件,则收集数据并返回操作。 这允许应用程序监视典型的动态电池信息,而无需轮询设备。

在使用两种容量条件之一之前,请确保电池支持它们,方法是使用超时为零 的IOCTL_BATTERY_QUERY_STATUS 控制代码。 检查结果以确定 容量 成员是否受支持, (即,而不是BATTERY_UNKNOWN_CAPACITY) 。

要求

要求
最低受支持的客户端
Windows XP [仅限桌面应用]
最低受支持的服务器
Windows Server 2003 [仅限桌面应用]
标头
Poclass.h;
Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP 上的 Batclass.h

另请参阅

BATTERY_STATUS

IOCTL_BATTERY_QUERY_STATUS

IOCTL_BATTERY_QUERY_TAG