Подпрограмма DispatchDeviceControl драйвера миникласса батареи
Диспетчер питания отправляет irp управления устройствами (IRP_MJ_DEVICE_CONTROL) в драйверы мини-класса через составной драйвер батареи. Подпрограмма DispatchDeviceControl драйвера мини-класса батареи обрабатывает IRP, содержащие ICTL батареи.
В подпрограмме DispatchDeviceControl драйвер миникласса может вызывать подпрограмму BatteryClassIoctl драйвера класса для выполнения системных задач управления устройствами. BatteryClassIoctl обрабатывает ioCTL управления устройствами для батарей.
Подпрограмма DispatchDeviceControl должна:
Определите, является ли текущий IOCTL частным IOCTL, определенным драйвером мини-класса. Если это так, выполните запрошенную операцию, завершите IRP с помощью IO_NO_INCREMENT и перейдите к шагу 4.
Если IOCTL не является частным IOCTL, вызовите BatteryClassIoctl с IRP и дескриптором класса, возвращенным BatteryClassInitializeDevice. Пример:
Status = BatteryClassIoctl (NewBattNP->ClassHandle, Irp);
Подпрограмма BatteryClassIoctl драйвера класса проверяет, предназначен ли IOCTL для указанного аккумулятора. Если это так, он вызывает соответствующую подпрограмму BatteryMiniXxx для удовлетворения запроса и завершает IRP с STATUS_SUCCESS. В противном случае возвращается STATUS_NOT_SUPPORTED.
Если BatteryClassIoctl возвращает STATUS_NOT_SUPPORTED, указывая, что это не IRP батареи, передайте IRP следующему ниже драйверу.
Возвращает состояние в качестве возвращаемого значения функции.