電池類別驅動程式會呼叫 BatteryMiniQueryInformation 例程,以取得目前電池的各種資訊。 此例程宣告如下:
typedef
NTSTATUS
(*BCLASS_QUERY_INFORMATION)(
IN PVOID Context,
IN ULONG BatteryTag,
IN BATTERY_QUERY_INFORMATION_LEVEL Level,
IN LONG AtRate OPTIONAL,
OUT PVOID Buffer,
IN ULONG BufferLength,
OUT PULONG ReturnedLength
);
Context 參數是迷你類別驅動程式所配置的上下文區域的指標,並在裝置初始化時,透過BATTERY_MINIPORT_INFO結構傳遞到類別驅動程式。 BatteryTag 參數是 BatteryMiniQueryTag 先前傳回的值。
Level 參數會指定所要求的信息種類。 迷你類別驅動程式會將資訊格式化為 BATTERY_INFORMATION 結構,並在 Buffer 提供的位址傳回該資訊,並以 ReturnedLength 中的長度指標傳回該資訊。
迷你類別驅動程式應該準備好處理下列要求:
電池性能、化學成分、容量、低容量警示等級,以及保留電量
溫度,以開爾文為單位的十分之一度
估計剩餘運行時間,以秒為單位
裝置名稱
製造商的電池型號名稱
製造日期
唯一識別碼
序號
某些電池無法報告所有這些資訊。 迷你類別驅動程式應該針對其裝置無法提供的任何資訊傳回STATUS_INVALID_DEVICE_REQUEST。