响应电池标记查询

电池标记是由微型类驱动程序初始化并递增的 ULONG 计数器。 电池类驱动程序会调用 BatteryMiniQueryTag,以请求标记的当前值。

此微型类驱动程序例程的声明方式如下:

typedef
NTSTATUS
(*BCLASS_QUERY_TAG)(
    IN PVOID Context,
    OUT PULONG BatteryTag
    );

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

每次插入电池时,微型类驱动程序都必须递增标记的值,无论这是新电池还是以前就存在的同一电池。

如果没有电池,或者微型类驱动程序无法确定电池是否存在,则微型类驱动程序应返回 STATUS_NO_SUCH_DEVICE,并将标记的值设置为 BATTERY_TAG_INVALID。

类驱动程序在内部和调用微型类驱动程序时使用电池标记来标识电池的特定实例。 微型类驱动程序应检查传递给每个标准例程的电池标记的值,以确保与当前电池对应。 如果标记不正确,则微型类驱动程序应返回 STATUS_NO_SUCH_DEVICE。