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 |
---|---|
|
A bateria designada por BatteryTag está instalada no momento e as informações solicitadas foram retornadas. |
|
A bateria designada por BatteryTag não está presente. |
|
O parâmetro Level especifica informações que essa bateria não dá suporte. |
|
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 |