Condividi tramite


BCLASS_QUERY_INFORMATION_CALLBACK funzione di callback (batclass.h)

BatteryMiniQueryInformation restituisce informazioni sul dispositivo della batteria specificato.

Sintassi

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

Parametri

[in] Context

Puntatore all'area di contesto allocata dal driver miniclasse per il dispositivo batteria.

[in] BatteryTag

Puntatore a un tag di batteria restituito in precedenza da BatteryMiniQueryTag.

[in] Level

Tipo di informazioni sulla batteria da restituire. I valori possibili sono:

BatteryInformationBatteryGranularityInformationBatteryTemperatureBatteryEstimatedTimeBatteryDeviceNameBatteryManufactureDate BatteryManufactureNameBatteryUniqueIDBatterySerialNumber

[in] AtRate

La frequenza di scarico, in milliwatt negativi, usata per calcolare il tempo per scaricare la batteria. Questo parametro è significativo solo quando Level è BatteryEstimatedTime; questo parametro viene ignorato per tutti gli altri valori di Level.

[out] Buffer

Puntatore a un buffer allocato dal driver della classe di batteria. Il buffer viene usato per restituire le informazioni richieste. Il buffer viene usato per restituire le informazioni richieste. I driver miniclass formattano il contenuto del buffer a seconda del valore di Level, come indicato di seguito:

BatteryInformation

Restituisce informazioni formattate come struttura BATTERY_INFORMATION.

BatteryGranularityInformation

Restituisce una matrice a lunghezza variabile di tipo BATTERY_REPORTING_SCALE che contiene la granularità dei report della capacità rimanente. Il numero di voci restituite dipende dalle dimensioni del buffer restituito, fino a un massimo di quattro voci per batteria.

BatteryTemperature

Restituisce un valore ULONG che dà la temperatura corrente della batteria, in decimi di grado Kelvin.

BatteryEstimatedTime

Restituisce un valore ULONG che stima il numero di secondi di tempo di esecuzione rimanenti sulla batteria, in base alla frequenza di scarico specificata in AtRate. Se AtRate è negativo o zero, il driver miniclasse deve calcolare il tempo di esecuzione in base alla frequenza corrente di scarico. Tuttavia, se il driver non può fare una stima (ad esempio , AtRate è zero e la batteria non viene scaricata), dovrebbe restituire BATTERY_UNKNOWN_TIME.

BatteryDeviceName

Restituisce una stringa Unicode che specifica il nome della batteria. Ad esempio, DR202 identifica una batteria intelligente Duracell.

BatteryManufactureDate

Restituisce una struttura BATTERY_MANUFACTURE_DATE che specifica la data di produzione della batteria.

BatteryManufactureName

Restituisce una stringa Unicode che specifica il nome del modello assegnato alla batteria dal produttore.

BatteryUniqueID

Restituisce una stringa Unicode che identifica in modo univoco la batteria, in genere una concatenazione del produttore, della data e del numero di serie della batteria.

BatterySerialNumber

Restituisce una stringa Unicode contenente il numero di serie della batteria.

[in] BufferLength

Lunghezza, in byte, del buffer a cui punta buffer.

[out] ReturnedLength

Numero di byte restituiti nel buffer a cui fa riferimento buffer.

Valore restituito

BatteryMiniQueryInformation restituisce uno dei seguenti:

Codice restituito Descrizione
STATUS_SUCCESS
La batteria designata da BatteryTag è attualmente installata e le informazioni richieste sono state restituite.
STATUS_NO_SUCH_DEVICE
La batteria designata da BatteryTag non è presente.
STATUS_INVALID_DEVICE_REQUEST
Il parametro Level specifica le informazioni che questa batteria non supporta.
STATUS_INVALID_PARAMETER
Il parametro Level non è uno degli enumeratori elencati.

Commenti

Il driver della classe di batteria chiama una routine batteryMiniQueryInformation di un miniclasse per ottenere vari tipi di informazioni sulla batteria. Le informazioni restituite dipendono dal parametro Level . Non tutte le batterie supportano tutti i possibili tipi di informazioni che il driver di classe potrebbe richiedere. I driver miniclasse devono restituire STATUS_INVALID_DEVICE_REQUEST per eventuali richieste di questo tipo.

Se Level specifica BatteryInformation, il driver miniclasse deve restituire una struttura BATTERY_INFORMATION nel buffer a cui punta il buffer. Questa struttura contiene informazioni sullo stato sulla batteria, incluse le sue capacità, la tecnologia (se la batteria è ricaricabile) e la chimica; capacità teorica e effettiva a carico pieno; bias critico; numero di cicli di carica/scarica; e i livelli di capacità a cui si verificano avvisi di avviso.

Se Level specifica BatteryGranularityInformation, il driver miniclasse può restituire una matrice di uno a quattro elementi, formattati come strutture BATTERY_REPORTING_SCALE. Ogni elemento della matrice è costituito da un valore di granularità e da un valore di capacità rimanente, in milliwatt-hours. La granularità indica la precisione della misura e quindi è un indicatore dell'accuratezza della capacità.

La maggior parte dei tipi di batterie segnala la capacità su una singola scala. I driver miniclasse per queste batterie restituiscono solo una voce, dando la capacità rimanente e la precisione della scala. Alcune batterie, tuttavia, hanno due scale: una scala grossa che misura se la capacità è maggiore o minore di cinquanta percento e una scala più fine che si applica come capacità si avvicina a zero. I driver miniclasse per tali batterie devono restituire due voci che descrivono le due scale.

Se Level specifica BatteryEstimatedTime, il driver miniclasse deve usare il parametro Facoltativo AtRate per stimare la quantità di tempo rimanente per usare la batteria. Il parametro AtRate specifica una frequenza di scarico, in milliwatt negativi.

Se Level specifica BatteryUniqueId, il driver miniclasse deve restituire una stringa che identifica in modo univoco questa particolare batteria. Per il metodo di controllo e le batterie intelligenti, l'ID univoco è la concatenazione del nome della produzione, il nome del dispositivo, la data di produzione e la rappresentazione ASCII del numero di serie della batteria. Questo valore non deve essere visualizzato.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione batclass.h (include Batclass.h)
IRQL PASSIVE_LEVEL

Vedi anche

BATTERY_INFORMATION

BATTERY_MANUFACTURE_DATE

BATTERY_REPORTING_SCALE