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 |
---|---|
|
La batteria designata da BatteryTag è attualmente installata e le informazioni richieste sono state restituite. |
|
La batteria designata da BatteryTag non è presente. |
|
Il parametro Level specifica le informazioni che questa batteria non supporta. |
|
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 |