Freigeben über


BCLASS_QUERY_INFORMATION_CALLBACK Rückruffunktion (batclass.h)

BatteryMiniQueryInformation gibt Informationen zum angegebenen Akkugerät zurück.

Syntax

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

Parameter

[in] Context

Ein Zeiger auf den Kontextbereich, der vom Miniklassentreiber für das Akkugerät zugewiesen wird.

[in] BatteryTag

Ein Zeiger auf ein Batterietag, das zuvor von BatteryMiniQueryTag zurückgegeben wurde.

[in] Level

Der Typ der zurückzugebenden Akkuinformationen. Mögliche Werte:

BatteryInformationBatteryGranularityInformationBatteryTemperatureBatteryEstimatedTimeBatteryDeviceNameBatteryManufactureDateBatteryManufactureNameBatteryUniqueIDBatterySerialNumber

[in] AtRate

Die Entladungsrate in negativem Milliwatt, die verwendet wird, um die Zeit für die Entladung der Batterie zu berechnen. Dieser Parameter ist nur dann sinnvoll, wenn LevelBatteryEstimatedTime ist. Dieser Parameter wird für alle anderen Werte von Level ignoriert.

[out] Buffer

Ein Zeiger auf einen Puffer, der vom Batterieklassentreiber zugeordnet wird. Der Puffer wird verwendet, um die angeforderten Informationen zurückzugeben. Der Puffer wird verwendet, um die angeforderten Informationen zurückzugeben. Miniklassentreiber formatieren den Inhalt des Puffers abhängig vom Wert von Level wie folgt:

BatteryInformation

Gibt Informationen zurück, die als BATTERY_INFORMATION-Struktur formatiert sind.

BatteryGranularityInformation

Gibt ein Array mit variabler Länge vom Typ BATTERY_REPORTING_SCALE zurück, das die Berichtsgranularität der verbleibenden Kapazität enthält. Die Anzahl der zurückgegebenen Einträge hängt von der Größe des zurückgegebenen Puffers ab und beträgt maximal vier Einträge pro Batterie.

BatteryTemperature

Gibt einen ULONG-Wert zurück, der die aktuelle Temperatur des Akkus in zehntel Grad Kelvin angibt.

BatteryEstimatedTime

Gibt einen ULONG-Wert zurück, der die Anzahl der verbleibenden Laufzeiten für den Akku schätzt, basierend auf der in AtRate angegebenen Entladungsrate. Wenn AtRate negativ oder null ist, sollte der Miniklassentreiber die Laufzeit basierend auf der aktuellen Entlastungsrate berechnen. Wenn der Treiber jedoch keine Schätzung vornehmen kann (z. B. ist AtRate null und der Akku entladen sich nicht), sollte er BATTERY_UNKNOWN_TIME zurückgeben.

BatteryDeviceName

Gibt eine Unicode-Zeichenfolge zurück, die den Namen des Akkus angibt. Dr202 identifiziert z. B. eine duracell Smart Battery.

BatteryManufactureDate

Geben Sie eine BATTERY_MANUFACTURE_DATE Struktur zurück, die das Herstellungsdatum der Batterie angibt.

BatteryManufactureName

Gibt eine Unicode-Zeichenfolge zurück, die den Modellnamen angibt, den der Akku vom Hersteller angegeben hat.

BatteryUniqueID

Gibt eine Unicode-Zeichenfolge zurück, die den Akku eindeutig identifiziert, in der Regel eine Verkettung des Herstellers, des Datums und der Seriennummer des Akkus.

BatterySerialNumber

Gibt eine Unicode-Zeichenfolge zurück, die die Seriennummer des Akkus enthält.

[in] BufferLength

Die Länge des Puffers in Bytes, auf den puffer verweist.

[out] ReturnedLength

Die Anzahl der im Puffer zurückgegebenen Bytes, auf die von Buffer verwiesen wird.

Rückgabewert

BatteryMiniQueryInformation gibt eine der folgenden Rückgaben zurück:

Rückgabecode Beschreibung
STATUS_SUCCESS
Der von BatteryTag angegebene Akku ist derzeit installiert, und die angeforderten Informationen wurden zurückgegeben.
STATUS_NO_SUCH_DEVICE
Der von BatteryTag angegebene Akku ist nicht vorhanden.
STATUS_INVALID_DEVICE_REQUEST
Der Parameter Level gibt Informationen an, die von diesem Akku nicht unterstützt werden.
STATUS_INVALID_PARAMETER
Der Parameter Level gehört nicht zu den aufgeführten Enumeratoren.

Hinweise

Der Akkuklassentreiber ruft die BatteryMiniQueryInformation-Routine eines Miniklassentreibers auf, um verschiedene Arten von Informationen über den Akku zu erhalten. Die zurückgegebenen Informationen hängen vom Parameter Level ab. Nicht alle Batterien unterstützen alle möglichen Arten von Informationen, die der Klassentreiber möglicherweise anfordern kann. Miniklassentreiber sollten für solche Anforderungen STATUS_INVALID_DEVICE_REQUEST zurückgeben.

Wenn Level BatteryInformation angibt, muss der Miniklassentreiber eine BATTERY_INFORMATION Struktur im Puffer zurückgeben, auf die von Buffer verwiesen wird. Diese Struktur enthält status Informationen über die Batterie, einschließlich ihrer Fähigkeiten, Technologie (unabhängig davon, ob die Batterie wiederaufladbar ist) und Chemie; theoretische und tatsächliche volle Kapazität; kritische Verzerrung; Anzahl der Lade-/Entladungszyklen; und die Kapazitätsstufen, bei denen Warnungen auftreten.

Wenn Level BatteryGranularityInformation angibt, kann der Miniklassentreiber ein Array von ein bis vier Elementen zurückgeben, die als BATTERY_REPORTING_SCALE-Strukturen formatiert sind. Jedes Element des Arrays besteht aus einem Granularitätswert und einem verbleibenden Kapazitätswert in Milliwattstunden. Die Granularität gibt die Genauigkeit der Messung an und ist somit ein Indikator für die Genauigkeit der Kapazität.

Die meisten Batterietypen melden Kapazität in einem einzigen Maßstab. Miniklassentreiber für diese Batterien geben nur einen Eintrag zurück, der die verbleibende Kapazität und die Genauigkeit der Skala gibt. Einige Batterien verfügen jedoch über zwei Skalen: eine Bruttoskala, die misst, ob die Kapazität größer oder weniger als fünfzig Prozent ist, und eine feinere Skala, die gilt, wenn die Kapazität 0 0 annähert. Miniklassentreiber für solche Batterien sollten zwei Einträge zurückgeben, die die beiden Skalierungen beschreiben.

Wenn LevelBatteryEstimatedTime angibt, muss der Miniklassentreiber den optionalen AtRate-Parameter verwenden, um die verbleibende Zeit für die Nutzung des Akkus zu schätzen. Der AtRate-Parameter gibt eine Entwässerungsrate in negativem Milliwatt an.

Wenn LevelBatteryUniqueId angibt, muss der Miniklassentreiber eine Zeichenfolge zurückgeben, die diesen bestimmten Akku eindeutig identifiziert. Bei Steuerungsmethoden und intelligenten Batterien ist die eindeutige ID die Verkettung des Herstellernamens, des Gerätenamens, des Herstellungsdatums und der ASCII-Darstellung der Seriennummer der Batterie. Dieser Wert soll nicht angezeigt werden.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile batclass.h (einschließlich Batclass.h)
IRQL PASSIVE_LEVEL

Weitere Informationen

BATTERY_INFORMATION

BATTERY_MANUFACTURE_DATE

BATTERY_REPORTING_SCALE