wm 操作系统对外设的电源状态的管理

2019-07-14 03:37发布

主要是处理:供电的状态以及电池的充电状态。 电源管理机制:全部在电源管理的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方法(推荐);应用测试的接口直接通过消息机制进行处理。为什么两者有区别呢,可能和内核态和用户态有关系。