Взаимодействие драйверов класса батареи и миникласса
Драйверы класса батареи и миникласса работают вместе для управления использованием батареи на компьютере. На следующей схеме показано их взаимодействие.
Драйвер мини-класса выступает в качестве основного драйвера функций для устройств, которые он контролирует. Он получает пакеты запросов ввода-вывода (IRP) от диспетчера питания через драйвер составной батареи и вызывает процедуры поддержки в драйвере класса батареи для регистрации устройств, отчетов о состоянии и обработки определенных системных ICTL батареи.
Драйвер класса собирает сведения и состояние всех драйверов мини-класса и сообщает об этом диспетчеру питания через составной драйвер батареи. В ответ на ioCTL батареи драйвер класса вызывает процедуры драйвера миникласса батареи (процедуры BatteryMiniXxx ) в драйверах миникласса для выполнения определенных операций управления устройством. Кроме того, такие приложения, как счетчик мощности, могут отправлять IRP_MJ_DEVICE_CONTROL запросы к драйверу мини-класса для получения сведений о конкретной батарее.
Драйвер класса, предназначенный для обработки широкого спектра сведений об аккумуляторе и условий работы, управляет температурой, изменениями емкости и т. д. Однако отдельные батареи различаются в их способности обнаруживать и сообщать об этих условиях. Каждый драйвер мини-класса должен быть адаптирован к управлению конкретным типом батареи и должен соответствующим образом реагировать на драйвер класса, когда его запрашивают какие-либо неподдерживаемые сведения.