主要是处理:供电的状态以及电池的充电状态。
电源管理机制:全部在电源管理的PM.DLL动态库中,此动态库PM.DLL是通过WM的核心进程device.dll 负责加载到WM的操作系统内核中进行运行。PM.DLL通过PB提供给OEM用户,全部代码位于%_WINCEROOT%/PUBLIC/COMMON/OAK/DEVICERS/PM目录下,OEM用户可以根据需要进行自行定制。
整个电源控制的状态,如下:
notification message Queus <----------------------------------application
^ | application API
| |
| |
v
-------------------------->POWER MANAGER apis
| | ^
| | | driver API
| V
外设driver
POWER MANAGER(pm.dll)
电源管理器在外设以及其驱动,应用程序,以及操作系统预先定义的电源状态3者之间充当一个仲裁角 {MOD}。
(1)操作系统的电源状态,确定了使用整个系统电源使用状态;
(2)应用比如音乐播放处理,可以通过消息机制控制系统如何使用电源;
第一:操作系统的预先设置电源状态以及系统电源状态
PM.H中定义了系统电源等级;并且在系统注册表中进行注册;
第二:电源管理和外设驱动等客户端的关系
电源管理单元和其客户端之间有API方式以及MSG方式。主要有三种客户:a)外设驱动程序,可以通过API访问PM,B)有部分应用需要订阅PM状态更新的;C)有部分应用需要控制PM操作的;
PM.dll部分对于驱动代码和应用程序代码,二者之间沟通方式是不同的。
如果某个驱动想获得电源管理的接口,首先需要让电源管理能识别和认识它,GUIID方法(推荐);应用测试的接口直接通过消息机制进行处理。为什么两者有区别呢,可能和内核态和用户态有关系。