BCLASS_QUERY_INFORMATION_CALLBACK fonction de rappel (batclass.h)
BatteryMiniQueryInformation retourne des informations sur le périphérique de batterie donné.
Syntaxe
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
)
{...}
Paramètres
[in] Context
Pointeur vers la zone de contexte allouée par le pilote de miniclasse pour le périphérique de batterie.
[in] BatteryTag
Pointeur vers une balise de batterie précédemment retournée par BatteryMiniQueryTag.
[in] Level
Type d’informations sur la batterie à retourner. Les valeurs possibles sont les suivantes :
BatteryInformationBatteryGranularityInformationBatteryTemperatureBatteryEstimatedTimeBatteryDeviceNameBatteryManufactureDateBatteryManufactureNameBatteryUniqueIDBatterySerialNumber
[in] AtRate
Taux de drainage, en milliwatts négatifs, utilisé pour calculer le temps de décharge de la batterie. Ce paramètre n’est significatif que lorsque Level a la valeur BatteryEstimatedTime ; ce paramètre est ignoré pour toutes les autres valeurs de Level.
[out] Buffer
Pointeur vers une mémoire tampon allouée par le pilote de classe de batterie. La mémoire tampon est utilisée pour retourner les informations demandées. La mémoire tampon est utilisée pour retourner les informations demandées. Les pilotes de miniclasse mettez en forme le contenu de la mémoire tampon en fonction de la valeur de Level, comme suit :
BatteryInformation
Retourne des informations mises en forme en tant que structure BATTERY_INFORMATION.
BatteryGranularityInformation
Retourne un tableau de longueur variable de type BATTERY_REPORTING_SCALE qui contient la granularité de création de rapports de la capacité restante. Le nombre d’entrées retournées dépend de la taille de la mémoire tampon retournée, jusqu’à un maximum de quatre entrées par batterie.
BatteryTemperature
Retourne une valeur ULONG indiquant la température actuelle de la batterie, en dixièmes de degré Kelvin.
BatteryEstimatedTime
Retourne une valeur ULONG qui estime le nombre de secondes d’exécution restantes sur la batterie, en fonction du taux de drainage spécifié dans AtRate. Si AtRate est négatif ou zéro, le pilote de miniclasse doit calculer la durée d’exécution en fonction du taux actuel de drainage. Toutefois, si le pilote ne peut pas effectuer d’estimation (par exemple, AtRate est égal à zéro et la batterie ne se décharge pas), il doit retourner BATTERY_UNKNOWN_TIME.
BatteryDeviceName
Retourne une chaîne Unicode spécifiant le nom de la batterie. Par exemple, DR202 identifie une batterie intelligente Duracell.
BatteryManufactureDate
Retourne une structure BATTERY_MANUFACTURE_DATE spécifiant la date de fabrication de la batterie.
BatteryManufactureName
Retourne une chaîne Unicode spécifiant le nom de modèle donné à la batterie par son fabricant.
BatteryUniqueID
Retourne une chaîne Unicode qui identifie de façon unique la batterie, généralement une concaténation du fabricant, de la date et du numéro de série de la batterie.
BatterySerialNumber
Retourne une chaîne Unicode qui contient le numéro de série de la batterie.
[in] BufferLength
Longueur, en octets, de la mémoire tampon pointée par Buffer.
[out] ReturnedLength
Nombre d’octets retournés dans la mémoire tampon pointée par Buffer.
Valeur retournée
BatteryMiniQueryInformation retourne l’une des valeurs suivantes :
Code de retour | Description |
---|---|
|
La batterie désignée par BatteryTag est actuellement installée et les informations demandées ont été retournées. |
|
La batterie désignée par BatteryTag n’est pas présente. |
|
Le paramètre Level spécifie les informations que cette batterie ne prend pas en charge. |
|
Le paramètre Level ne fait pas partie des énumérateurs répertoriés. |
Remarques
Le pilote de classe de batterie appelle la routine BatteryMiniQueryInformation d’un pilote miniclass pour obtenir différents types d’informations sur la batterie. Les informations retournées dépendent du paramètre Level . Toutes les batteries ne prennent pas en charge tous les types d’informations possibles que le pilote de classe peut demander. Les pilotes de miniclasse doivent retourner STATUS_INVALID_DEVICE_REQUEST pour ces demandes.
Si Level spécifie BatteryInformation, le pilote miniclasse doit retourner une structure BATTERY_INFORMATION dans la mémoire tampon pointée par Buffer. Cette structure contient des informations status sur la batterie, y compris ses capacités, la technologie (si la batterie est rechargeable) et la chimie ; la capacité théorique et réelle pleine charge ; le biais critique, le nombre de cycles de charge/décharge et les niveaux de capacité auxquels des alertes d’avertissement se produisent.
Si Level spécifie BatteryGranularityInformation, le pilote de miniclasse peut retourner un tableau d’un à quatre éléments, mis en forme en tant que structures BATTERY_REPORTING_SCALE. Chaque élément du tableau se compose d’une valeur de granularité et d’une valeur de capacité restante, en milliwatt-heures. La granularité indique la précision de la mesure et est donc un indicateur de la précision de la capacité.
La plupart des types de batteries rapportent la capacité à une seule échelle. Les pilotes de miniclasse pour ces batteries ne retournent qu’une seule entrée, donnant la capacité restante et la précision de l’échelle. Toutefois, certaines batteries ont deux échelles : une échelle brute qui mesure si la capacité est supérieure ou inférieure à cinquante pour cent, et une échelle plus fine qui s’applique lorsque la capacité approche de zéro. Les pilotes de miniclasse pour ces batteries doivent retourner deux entrées décrivant les deux échelles.
Si Level spécifie BatteryEstimatedTime, le pilote miniclass doit utiliser le paramètre atRate facultatif pour estimer le temps restant pour utiliser la batterie. Le paramètre AtRate spécifie une vitesse de drainage, en milliwatts négatifs.
Si Level spécifie BatteryUniqueId, le pilote miniclasse doit retourner une chaîne qui identifie de façon unique cette batterie particulière. Pour la méthode de contrôle et les batteries intelligentes, l’ID unique est la concaténation du nom de fabrication, du nom de l’appareil, de la date de fabrication et de la représentation ASCII du numéro de série de la batterie. Cette valeur n’est pas destinée à être affichée.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | batclass.h (inclure Batclass.h) |
IRQL | PASSIVE_LEVEL |