设置和取消电池通知

微型类驱动程序提供 BatteryMiniSetStatusNotify 例程,以便类驱动程序可以请求特定条件的通知。 该例程的声明方式如下:

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

Context 参数是指向由微型类驱动程序分配的上下文区域的指针,并在设备初始化时传递到 BATTERY_MINIPORT_INFO 结构中的类驱动程序。 BatteryTag 参数是 BatteryMiniQueryTag 之前返回的值。

BatteryNotify 参数包含一组指示电池电源条件的标志,以及一对用于定义可接受的电池容量范围的 ULONG 值。 当电池不再满足指定的电源条件或其容量超过或低于指定范围时,微型类驱动程序应调用 BatteryClassStatusNotify

BatteryMiniSetStatusNotify 应针对无法为此电池确定的任何条件或触发器值返回 STATUS_NOT_SUPPORTED。

类驱动程序会调用 BatteryMiniDisableStatusNotify 例程,以取消 BatteryMiniSetStatusNotify 以前请求的电池状态更改通知。 此例程的声明方式如下:

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

Context 参数是指向由微型类驱动程序分配的上下文区域的指针,并在设备初始化时传递到 BATTERY_MINIPORT_INFO 结构中的类驱动程序。

微型类驱动程序可以省略例程的功能,并返回 STATUS_NOT_SUPPORTED。 但是,提供 BatteryMiniSetStatusNotify 例程的微型类驱动程序必须提供相应的 BatteryMiniDisableStatusNotify 例程,反之亦然。