Поделиться через


функция обратного вызова 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

Тип возвращаемых сведений об аккумуляторе. Возможны следующие значения:

BatteryInformationBatteryGranularityInformationBatteryTemperatureBatteryEstimatedTimeBatteryManufactureDateBatteryManufactureDateBatteryUniqueIDBatterySerialNumber

[in] AtRate

Скорость стока в отрицательных милливаттах используется для расчета времени разрядки батареи. Этот параметр имеет смысл только в том случае, если для параметра Levelзадано значение BatteryEstimatedTime; Этот параметр игнорируется для всех остальных значений Level.

[out] Buffer

Указатель на буфер, выделенный драйвером класса батареи. Буфер используется для возврата запрошенных сведений. Буфер используется для возврата запрошенных сведений. Драйверы миникласса форматирует содержимое буфера в зависимости от значения Level следующим образом:

BatteryInformation

Возвращает сведения в формате BATTERY_INFORMATION структуры.

BatteryGranularityInformation

Возвращает массив переменной длины типа BATTERY_REPORTING_SCALE, содержащий степень детализации отчетов оставшейся емкости. Количество возвращаемых записей зависит от размера возвращаемого буфера и не более четырех записей на батарею.

BatteryTemperature

Возвращает значение ULONG, указывающее текущую температуру батареи, в десятых градусах Кельвина.

BatteryEstimatedTime

Возвращает значение ULONG, оценивающее количество секунд времени выполнения, оставшееся от батареи, на основе скорости стока, указанной в AtRate. Если значение AtRate отрицательное или нулевое, драйвер мини-класса должен вычислять время выполнения на основе текущей скорости стока. Однако если драйвер не может выполнить оценку (например, AtRate равен нулю, а батарея не разрядится), он должен вернуть BATTERY_UNKNOWN_TIME.

BatteryDeviceName

Возвращает строку Юникода, указывающую имя батареи. Например, DR202 определяет интеллектуальный аккумулятор Duracell.

BatteryManufactureDate

Возвращает BATTERY_MANUFACTURE_DATE структуру, указывающую дату производства батареи.

BatteryManufactureName

Возвращает строку Юникода, указывающую имя модели, данное батарее производителем.

BatteryUniqueID

Возвращает строку Юникода, которая однозначно идентифицирует батарею. Обычно это объединение изготовителя, даты и серийного номера батареи.

BatterySerialNumber

Возвращает строку Юникода, содержащую серийный номер батареи.

[in] BufferLength

Длина (в байтах) буфера, на который указывает буфер.

[out] ReturnedLength

Число байтов, возвращаемых в буфере, на который указывает buffer.

Возвращаемое значение

BatteryMiniQueryInformation возвращает одно из следующих данных:

Код возврата Описание
STATUS_SUCCESS
Батарея, назначенная BatteryTag, в настоящее время установлена, и запрошенные сведения возвращены.
STATUS_NO_SUCH_DEVICE
Батарея, назначенная BatteryTag, отсутствует.
STATUS_INVALID_DEVICE_REQUEST
Параметр Level указывает сведения, которые не поддерживаются этой батареей.
STATUS_INVALID_PARAMETER
Параметр Level не является одним из перечисленных перечислителей.

Комментарии

Драйвер класса батареи вызывает подпрограмму BatteryMiniQueryInformation миникласса, чтобы получить различные типы информации об аккумуляторе. Возвращаемые сведения зависят от параметра Level . Не все батареи поддерживают все возможные типы сведений, которые может запрашивать драйвер класса. Драйверы мини-класса должны возвращать STATUS_INVALID_DEVICE_REQUEST для любых таких запросов.

Если параметр Level указывает BatteryInformation, драйвер мини-класса должен возвращать структуру BATTERY_INFORMATION в буфере, на который указывает Buffer. Эта структура содержит сведения о состоянии батареи, включая его возможности, технологию (является ли аккумулятор перезаряжаемой) и химию; теоретическая и фактическая полная мощность; критическое смещение; количество циклов зарядки и разрядки; и уровни емкости, при которых появляются предупреждения.

Если параметр Level указывает BatteryGranularityInformation, драйвер мини-класса может возвращать массив из одного или четырех элементов в формате BATTERY_REPORTING_SCALE структур. Каждый элемент массива состоит из значения детализации и оставшегося значения емкости в милливатт-часах. Степень детализации указывает на точность измерения и, таким образом, является показателем точности емкости.

Большинство типов аккумуляторов сообщают о емкости в одном масштабе. Драйверы миникласса для этих батарей возвращают только одну запись, обеспечивая оставшуюся емкость и точность шкалы. Некоторые батареи, однако, имеют две шкалы: валовую шкалу, которая измеряет, превышает ли емкость пятьдесят процентов, и более тонкая шкала, которая применяется по мере приближения емкости к нулю. Драйверы мини-класса для таких батарей должны возвращать две записи, описывающие две шкалы.

Если в параметре Level указано значение BatteryEstimatedTime, драйвер мини-класса должен использовать необязательный параметр AtRate , чтобы оценить время, оставшееся на использование батареи. Параметр AtRate указывает скорость стока в отрицательных милливаттах.

Если в параметре Level задано значение BatteryUniqueId, драйвер мини-класса должен вернуть строку, которая однозначно идентифицирует этот конкретный аккумулятор. Для метода управления и смарт-аккумуляторов уникальным идентификатором является объединение названия производства, названия устройства, даты производства и представления ASCII серийного номера батареи. Это значение не предназначено для отображения.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть batclass.h (включая Batclass.h)
IRQL PASSIVE_LEVEL

См. также раздел

BATTERY_INFORMATION

BATTERY_MANUFACTURE_DATE

BATTERY_REPORTING_SCALE