共用方式為


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
表示電池可以存取 AC 電源。

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