Freigeben über


Festlegen und Abbrechen der Akkubenachrichtigung

Ein Miniklassentreiber stellt eine BatteryMiniSetStatusNotify-Routine bereit, sodass der Klassentreiber eine Benachrichtigung über bestimmte Bedingungen anfordern kann. Die Routine wird wie folgt deklariert:

typedef
NTSTATUS
(*BCLASS_SET_STATUS_NOTIFY)(
    IN PVOID Context,
    IN ULONG BatteryTag,
    IN PBATTERY_NOTIFY BatteryNotify
    );

Der Context-Parameter ist ein Zeiger auf den Kontextbereich, der vom Miniklassentreiber zugeordnet und bei der Geräteinitialisierung an den Klassentreiber in der BATTERY_MINIPORT_INFO-Struktur übergeben wird. Der BatteryTag-Parameter ist ein Wert, der zuvor von BatteryMiniQueryTag zurückgegeben wurde.

Der BatteryNotify-Parameter enthält eine Reihe von Flags, die die Batterieleistungsbedingung angeben, und ein Paar ULONG-Werte, die einen Bereich akzeptabler Akkukapazitäten definieren. Wenn der Akku die angegebenen Leistungsbedingungen nicht mehr erfüllt oder seine Kapazität den angegebenen Bereich über- oder unterschreitet, sollte der Miniklassentreiber BatteryClassStatusNotify aufrufen.

BatteryMiniSetStatusNotify sollte STATUS_NOT_SUPPORTED für alle Bedingungen oder Triggerwerte zurückgeben, die für diesen Akku nicht bestimmt werden können.

Der Klassentreiber ruft die BatteryMiniDisableStatusNotify-Routine auf, um die Benachrichtigung über Status Änderungen des Akkus abzubrechen, die zuvor von BatteryMiniSetStatusNotify angefordert wurden. Diese Routine wird wie folgt deklariert:

typedef
NTSTATUS
(*BCLASS_DISABLE_STATUS_NOTIFY)(
    IN PVOID Context
    );

Der Context-Parameter ist ein Zeiger auf den Kontextbereich, der vom Miniklassentreiber zugeordnet und bei der Geräteinitialisierung an den Klassentreiber in der BATTERY_MINIPORT_INFO-Struktur übergeben wird.

Miniklassentreiber können funktionen für routinen weglassen und STATUS_NOT_SUPPORTED zurückgeben. Ein Miniklassentreiber, der eine BatteryMiniSetStatusNotify-Routine bereitstellt, muss jedoch eine entsprechende BatteryMiniDisableStatusNotify-Routine bereitstellen und umgekehrt.