Compartilhar via


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.