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
ドレインの速度は、負のミリワットで、バッテリを放電する時間を計算するために使用されます。 このパラメーターは、Level が BatteryEstimatedTime の場合にのみ意味があります。Level の他のすべての値では、このパラメーターは無視されます。
[out] Buffer
バッテリ クラス ドライバーによって割り当てられるバッファーへのポインター。 バッファーは、要求された情報を返すために使用されます。 バッファーは、要求された情報を返すために使用されます。 ミニクラス ドライバーは、 次のように Level の値に応じてバッファーの内容を書式設定します。
BatteryInformation
BATTERY_INFORMATION構造体として書式設定された情報を返します。
BatteryGranularityInformation
残りの容量のレポート粒度を含むBATTERY_REPORTING_SCALE型の可変長配列を返します。 返されるエントリの数は、返されるバッファーのサイズによって異なります。バッテリーあたり最大 4 エントリまでです。
BatteryTemperature
バッテリーの現在の温度を示す ULONG 値を、ケルビンの 10 分の 1 で返します。
BatteryEstimatedTime
AtRate で指定されたドレイン速度に基づいて、バッテリの残りの実行時間の秒数を見積もる ULONG 値を返します。 AtRate が負またはゼロの場合、ミニクラス ドライバーは、ドレインの現在のレートに基づいて実行時間を計算する必要があります。 ただし、ドライバーが見積もりを行うことができない場合 (たとえば、 AtRate が 0 で、バッテリーが放電していない場合)、BATTERY_UNKNOWN_TIMEを返す必要があります。
BatteryDeviceName
バッテリーの名前を指定する Unicode 文字列を返します。 たとえば、DR202 は Duracell スマート バッテリーを識別します。
BatteryManufactureDate
バッテリが製造された日付を指定するBATTERY_MANUFACTURE_DATE構造体を返します。
BatteryManufactureName
製造元によってバッテリに指定されたモデル名を指定する Unicode 文字列を返します。
BatteryUniqueID
バッテリを一意に識別する Unicode 文字列を返します。通常は、バッテリーの製造元、日付、シリアル番号を連結したものです。
BatterySerialNumber
バッテリーのシリアル番号を含む Unicode 文字列を返します。
[in] BufferLength
Buffer が指すバッファーの長さ (バイト単位)。
[out] ReturnedLength
Buffer が指すバッファーで返されるバイト数。
戻り値
BatteryMiniQueryInformation は、次のいずれかを返します。
リターン コード | 説明 |
---|---|
|
BatteryTag によって指定されたバッテリーは現在インストールされており、要求された情報が返されています。 |
|
BatteryTag によって指定されたバッテリーが存在しません。 |
|
Level パラメーターは、このバッテリがサポートしていない情報を指定します。 |
|
Level パラメーターは、列挙子の 1 つではありません。 |
注釈
バッテリー クラス ドライバーは、ミニクラス ドライバーの BatteryMiniQueryInformation ルーチンを呼び出して、バッテリーに関するさまざまな種類の情報を取得します。 返される情報は Level パラメーターによって異なります。 すべてのバッテリが、クラス ドライバーが要求する可能性のあるすべての種類の情報をサポートしているわけではありません。 ミニクラス ドライバーは、このような要求のSTATUS_INVALID_DEVICE_REQUESTを返す必要があります。
Level で BatteryInformation が指定されている場合、ミニクラス ドライバーは Buffer が指すバッファー内のBATTERY_INFORMATION構造体を返す必要があります。 この構造には、バッテリーに関する状態情報が含まれています。理論上および実際のフル充電容量。重大なバイアス;充電/放電サイクルの数;および警告アラートが発生する容量レベル。
Level で BatteryGranularityInformation が指定されている場合、ミニクラス ドライバーは、構造体として書式設定された 1 から 4 つの要素の配列BATTERY_REPORTING_SCALE返すことができます。 配列の各要素は、粒度値と残りの容量値 (ミリワット時間) で構成されます。 粒度は測定の精度を示すので、容量の精度を示す指標になります。
ほとんどの種類の電池は、1つのスケールで容量を報告します。 これらのバッテリのミニクラス ドライバーは、残りの容量とスケールの精度を提供するエントリを 1 つだけ返します。 ただし、一部のバッテリには、容量が 50% より大きいか 50% 未満かを測定する総スケールと、容量がゼロに近づくにつれて適用されるより細かいスケールという 2 つのスケールがあります。 このようなバッテリのミニクラス ドライバーは、2 つのスケールを記述する 2 つのエントリを返す必要があります。
Level で BatteryEstimatedTime が指定されている場合、ミニクラス ドライバーはオプションの AtRate パラメーターを使用して、バッテリーを使用するための残りの時間を見積もる必要があります。 AtRate パラメーターは、ドレイン レートを負のミリワット単位で指定します。
Level で BatteryUniqueId が指定されている場合、ミニクラス ドライバーは、この特定のバッテリーを一意に識別する文字列を返す必要があります。 制御方法とスマート バッテリの場合、一意の ID は、製造名、デバイス名、製造日、およびバッテリのシリアル番号の ASCII 表現を連結したものです。 この値は表示されません。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | batclass.h (Batclass.h を含む) |
IRQL | PASSIVE_LEVEL |