Configurando e cancelando a notificação de bateria
Um driver de miniclasse fornece uma rotina BatteryMiniSetStatusNotify para que o driver de classe possa solicitar a notificação de condições específicas. A rotina é declarada da seguinte maneira:
typedef
NTSTATUS
(*BCLASS_SET_STATUS_NOTIFY)(
IN PVOID Context,
IN ULONG BatteryTag,
IN PBATTERY_NOTIFY BatteryNotify
);
O parâmetro Context é um ponteiro para a área de contexto alocada pelo driver de miniclasse e passada para o driver de classe na estrutura BATTERY_MINIPORT_INFO na inicialização do dispositivo. O parâmetro BatteryTag é um valor retornado anteriormente por BatteryMiniQueryTag.
O parâmetro BatteryNotify contém um conjunto de sinalizadores que indicam a condição de energia da bateria e um par de valores ULONG que definem um intervalo de capacidades de bateria aceitáveis. Quando a bateria não atende mais às condições de energia especificadas ou sua capacidade fica acima ou abaixo do intervalo especificado, o driver de miniclasse deve chamar BatteryClassStatusNotify.
BatteryMiniSetStatusNotify deve retornar STATUS_NOT_SUPPORTED para quaisquer condições ou valores de gatilho que não possam ser determinados para essa bateria.
O driver de classe chama a rotina BatteryMiniDisableStatusNotify para cancelar a notificação de alterações de status de bateria solicitadas anteriormente por BatteryMiniSetStatusNotify. Essa rotina é declarada da seguinte maneira:
typedef
NTSTATUS
(*BCLASS_DISABLE_STATUS_NOTIFY)(
IN PVOID Context
);
O parâmetro Context é um ponteiro para a área de contexto alocada pelo driver de miniclasse e passada para o driver de classe na estrutura BATTERY_MINIPORT_INFO na inicialização do dispositivo.
Os drivers de miniclasse podem omitir a funcionalidade para rotinas e retornar STATUS_NOT_SUPPORTED. No entanto, um driver de miniclasse que fornece uma rotina BatteryMiniSetStatusNotify deve fornecer uma rotina BatteryMiniDisableStatusNotify correspondente e vice-versa.