Compartilhar via


função de retorno de chamada BCLASS_QUERY_INFORMATION_CALLBACK (batclass.h)

BatteryMiniQueryInformation retorna informações sobre o dispositivo de bateria especificado.

Sintaxe

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
)
{...}

Parâmetros

[in] Context

Um ponteiro para a área de contexto alocada pelo driver de miniclasse para o dispositivo de bateria.

[in] BatteryTag

Um ponteiro para uma marca de bateria retornada anteriormente por BatteryMiniQueryTag.

[in] Level

O tipo de informações de bateria a serem retornadas. Os valores possíveis são:

BatteryInformationBatteryGranularityInformationBatteryTemperatureBatteryEstimatedTimeBatteryDeviceNameBatteryManufactureDateBatteryManufactureNameBatteryUniqueIDBatterySerialNumber

[in] AtRate

A taxa de dreno, em miliwatts negativos, usada para calcular o tempo para descarregar a bateria. Esse parâmetro só é significativo quando Level é BatteryEstimatedTime; esse parâmetro é ignorado para todos os outros valores de Level.

[out] Buffer

Um ponteiro para um buffer alocado pelo driver da classe de bateria. O buffer é usado para retornar as informações solicitadas. O buffer é usado para retornar as informações solicitadas. Os drivers de miniclasse formatizam o conteúdo do buffer dependendo do valor de Level, da seguinte maneira:

BatteryInformation

Retornar informações formatadas como uma estrutura BATTERY_INFORMATION.

BatteryGranularityInformation

Retornar uma matriz de comprimento variável do tipo BATTERY_REPORTING_SCALE que contém a granularidade de relatório da capacidade restante. O número de entradas retornadas depende do tamanho do buffer retornado, para um máximo de quatro entradas por bateria.

BatteryTemperature

Retornar um valor ULONG dando a temperatura atual da bateria, em décimos de grau Kelvin.

BatteryEstimatedTime

Retornar um valor ULONG estimando o número de segundos de tempo de execução restantes na bateria, com base na taxa de dreno especificada em AtRate. Se AtRate for negativo ou zero, o driver de miniclasse deverá calcular o tempo de execução com base na taxa atual de esvaziamento. No entanto, se o driver não puder fazer uma estimativa (por exemplo, AtRate for zero e a bateria não estiver descarregando), ele deverá retornar BATTERY_UNKNOWN_TIME.

BatteryDeviceName

Retornar uma cadeia de caracteres Unicode especificando o nome da bateria. Por exemplo, DR202 identifica uma bateria inteligente Duracell.

BatteryManufactureDate

Retornar uma estrutura BATTERY_MANUFACTURE_DATE especificando a data em que a bateria foi fabricada.

BatteryManufactureName

Retornar uma cadeia de caracteres Unicode especificando o nome do modelo fornecido à bateria pelo fabricante.

BatteryUniqueID

Retornar uma cadeia de caracteres Unicode que identifica exclusivamente a bateria, normalmente uma concatenação do fabricante, data e número de série da bateria.

BatterySerialNumber

Retornar uma cadeia de caracteres Unicode que contém o número de série da bateria.

[in] BufferLength

O comprimento, em bytes, do buffer apontado por Buffer.

[out] ReturnedLength

O número de bytes retornados no buffer apontado por Buffer.

Retornar valor

BatteryMiniQueryInformation retorna um dos seguintes:

Código de retorno Descrição
STATUS_SUCCESS
A bateria designada por BatteryTag está instalada no momento e as informações solicitadas foram retornadas.
STATUS_NO_SUCH_DEVICE
A bateria designada por BatteryTag não está presente.
STATUS_INVALID_DEVICE_REQUEST
O parâmetro Level especifica informações que essa bateria não dá suporte.
STATUS_INVALID_PARAMETER
O parâmetro Level não é um dos enumeradores listados.

Comentários

O driver da classe de bateria chama a rotina BatteryMiniQueryInformation de um driver de miniclasse para obter vários tipos de informações sobre a bateria. As informações retornadas dependem do parâmetro Level . Nem todas as baterias dão suporte a todos os tipos possíveis de informações que o driver de classe pode solicitar. Os drivers de miniclasse devem retornar STATUS_INVALID_DEVICE_REQUEST para essas solicitações.

Se Level especifica BatteryInformation, o driver de miniclasse deve retornar uma estrutura BATTERY_INFORMATION no buffer apontado por Buffer. Essa estrutura contém status informações sobre a bateria, incluindo suas funcionalidades, tecnologia (se a bateria é recarregável) e química; capacidade teórica e real carregada, viés crítico; número de ciclos de carga/descarga e os níveis de capacidade nos quais os alertas de aviso ocorrem.

Se Level especifica BatteryGranularityInformation, o driver de miniclasse poderá retornar uma matriz de um a quatro elementos, formatada como estruturas de BATTERY_REPORTING_SCALE. Cada elemento da matriz consiste em um valor de granularidade e um valor de capacidade restante, em milliwatt-hours. A granularidade indica a precisão da medida e, portanto, é um indicador da precisão da capacidade.

A maioria dos tipos de baterias relata a capacidade em uma única escala. Os drivers de miniclasse para essas baterias retornam apenas uma entrada, dando a capacidade restante e a precisão da escala. Algumas baterias, no entanto, têm duas escalas: uma escala bruta que mede se a capacidade é maior ou menor que cinquenta por cento, e uma escala mais fina que se aplica à medida que a capacidade se aproxima de zero. Os drivers de miniclasse para essas baterias devem retornar duas entradas que descrevem as duas escalas.

Se Level especifica BatteryEstimatedTime, o driver de miniclasse deve usar o parâmetro AtRate opcional para estimar o tempo restante para usar a bateria. O parâmetro AtRate especifica uma taxa de esvaziamento, em miliwatts negativos.

Se Level especifica BatteryUniqueId, o driver de miniclasse deve retornar uma cadeia de caracteres que identifique exclusivamente essa bateria específica. Para o método de controle e baterias inteligentes, a ID exclusiva é a concatenação do nome da fabricação, o nome do dispositivo, a data de fabricação e a representação ASCII do número de série da bateria. Esse valor não deve ser exibido.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho batclass.h (inclua Batclass.h)
IRQL PASSIVE_LEVEL

Confira também

BATTERY_INFORMATION

BATTERY_MANUFACTURE_DATE

BATTERY_REPORTING_SCALE