共用方式為


BCLASS_QUERY_INFORMATION_CALLBACK回呼函式 (batclass.h)

BatteryMiniQueryInformation 會傳回指定電池裝置的相關信息。

語法

BCLASS_QUERY_INFORMATION_CALLBACK BclassQueryInformationCallback;

NTSTATUS BclassQueryInformationCallback(
  [in]  PVOID Context,
  [in]  ULONG BatteryTag,
  [in]  BATTERY_QUERY_INFORMATION_LEVEL Level,
  [in]  LONG AtRate,
  [out] PVOID Buffer,
  [in]  ULONG BufferLength,
  [out] PULONG ReturnedLength
)
{...}

參數

[in] Context

由迷你類別驅動程式為電池裝置配置的內容區域指標。

[in] BatteryTag

BatteryMiniQueryTag 先前傳回之電池標記的指標。

[in] Level

要傳回的電池資訊類型。 可能的值包括:

BatteryInformationBatteryGranularityInformationBatteryTemperatureBatteryEstimatedTimeBatteryDeviceNameBatteryManufactureDateBatteryManufactureNameBatteryUniqueIDBatterySerialNumber

[in] AtRate

以負毫秒為單位的清空速率,用來計算電池耗盡的時間。 只有當 LevelBatteryEstimatedTime 時,此參數才有意義;對於 Level 的其他所有值,會忽略此參數。

[out] Buffer

電池類別驅動程式所配置的緩衝區指標。 緩衝區是用來傳回要求的資訊。 緩衝區是用來傳回要求的資訊。 Miniclass 驅動程式會根據 Level 的值來格式化緩衝區的內容,如下所示:

BatteryInformation

傳回格式化為BATTERY_INFORMATION結構的資訊。

BatteryGranularityInformation

傳回類型BATTERY_REPORTING_SCALE的可變長度陣列,其中包含剩餘容量的報告粒度。 傳回的專案數目取決於傳回緩衝區的大小,每個電池最多四個專案。

BatteryTemperature

傳回 ULONG 值,提供電池的目前溫度,以十分之一度 Kelvin 為單位。

BatteryEstimatedTime

根據 AtRate 中指定的清空速率,傳回 ULONG 值,估計電池剩餘運行時間的秒數。 如果 AtRate 是負數或零,迷你類別驅動程式應該根據目前的清空率來計算運行時間。 不過,如果驅動程式無法進行估計 (, 例如 AtRate 為零,而且電池不會) 卸除,它應該會傳回BATTERY_UNKNOWN_TIME。

BatteryDeviceName

傳回 Unicode 字串,指定電池的名稱。 例如,DR202 會識別 Duracell 智慧型手機型電池。

BatteryManufactureDate

傳回BATTERY_MANUFACTURE_DATE結構,指定電池製造日期。

BatteryManufactureName

傳回 Unicode 字串,指定其製造商提供給電池的型號名稱。

BatteryUniqueID

傳回可唯一識別電池的 Unicode 字串,通常是電池製造商、日期和序號的串連。

BatterySerialNumber

傳回 Unicode 字串,其中包含電池的序號。

[in] BufferLength

Buffer 所指向之緩衝區的長度,以位元組為單位。

[out] ReturnedLength

Buffer 所指向之緩衝區中傳回的位元組數目。

傳回值

BatteryMiniQueryInformation 會傳回下列其中一項:

傳回碼 Description
STATUS_SUCCESS
BatteryTag 指定的電池目前已安裝,並已傳回要求的資訊。
STATUS_NO_SUCH_DEVICE
BatteryTag 指定的電池不存在。
STATUS_INVALID_DEVICE_REQUEST
Level 參數會指定此電池不支持的資訊。
STATUS_INVALID_PARAMETER
Level 參數不是列出的其中一個列舉值。

備註

電池類別驅動程式會呼叫迷你類別驅動程式的 BatteryMiniQueryInformation 例程,以取得電池的各種類型資訊。 傳回的信息取決於 Level 參數。 並非所有電池都支援類別驅動程式可能要求的所有可能資訊類型。 Miniclass 驅動程式應該針對任何這類要求傳回STATUS_INVALID_DEVICE_REQUEST。

如果 Level 指定 BatteryInformation,迷你類別驅動程式必須在 Buffer 所指向的緩衝區中傳回BATTERY_INFORMATION結構。 此結構包含電池的狀態資訊,包括其功能、技術 (電池是否可充電) 和化學;理論上和實際的完全收費容量;重大偏差;收費/出口週期數目;和發生警告警示的容量層級。

如果 Level 指定 BatteryGranularityInformation,迷你類別驅動程式可以傳回一到四個元素的數位,格式化為BATTERY_REPORTING_SCALE結構。 數位的每個元素都包含數據粒度值,以及以 milliwatt-hours 為單位的剩餘容量值。 數據粒度表示測量精確度,因此是容量精確度的指標。

大部分的電池類型都會以單一規模報告容量。 這些電池的迷你類別驅動程式只會傳回一個專案,提供剩餘的容量和小數位數的有效位數。 不過,有些電池有兩個小數位數:可測量容量是否大於或小於 50% 的毛利小數位數,以及套用為容量的更精細規模接近零。 這類電池的迷你類別驅動程式應該傳回描述兩個縮放比例的專案。

如果 Level 指定 BatteryEstimatedTime,迷你類別驅動程式必須使用選用 的 AtRate 參數來估計剩餘使用電池的時間量。 AtRate 參數會指定負數毫秒的清空率。

如果 Level 指定 BatteryUniqueId,迷你類別驅動程式必須傳回可唯一識別此特定電池的字串。 針對控制方法和智慧電池,唯一標識符是製造名稱、裝置名稱、製造日期,以及電池序號的 ASCII 表示法。 此值並非要顯示。

規格需求

需求
目標平台 桌面
標頭 batclass.h (include Batclass.h)
IRQL PASSIVE_LEVEL

另請參閱

BATTERY_INFORMATION

BATTERY_MANUFACTURE_DATE

BATTERY_REPORTING_SCALE