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。 (如需詳細資訊,請參閱 電池標籤 。)
-
逾時
-
要求在完成之前,要求會等候 PowerState、 LowCapacity和 HighCapacity 成員所指定的條件的毫秒數。 值 -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 [僅限傳統型應用程式] |
標頭 |
|