电源管理器课件

上传人:我*** 文档编号:141942556 上传时间:2020-08-14 格式:PPT 页数:24 大小:111KB
返回 下载 相关 举报
电源管理器课件_第1页
第1页 / 共24页
电源管理器课件_第2页
第2页 / 共24页
电源管理器课件_第3页
第3页 / 共24页
电源管理器课件_第4页
第4页 / 共24页
电源管理器课件_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《电源管理器课件》由会员分享,可在线阅读,更多相关《电源管理器课件(24页珍藏版)》请在金锄头文库上搜索。

1、电源管理器,本节课程主要知识点 电源管理器,重点和难点,重点 电源管理 难点 电源管理的实现,电源管理,电源管理器,电源管理器通过管理设备的电源状态,从而增加整个系统的电源效率。 为每个设备提供电源管理,减少设备的电能消耗。 在重启、运行、挂起状态下在RAM中维护和保护文件系统。 在用电池供电的设备中,电源管理表现的好坏会直接影响设备的性能。,电源管理器功能,保证电源管理的具体功能可以被枚举。 处理系统的电源服务请求。 在系统启动或空闲过后立刻给设备加电。 在系统关闭和进入空闲时使设备掉电或进入睡眠。 如果设备支持唤醒功能,唤醒设备。,电源管理器在系统中的位置,电源管理器是内核、OEM适配层(

2、OAL) 与驱动程序、应用程序间的中介。 通过把内核、OAL层从驱动程序、应用程序分开,驱动程序和应用程序可以与系统状态分开来管理它们自己的电源状态。 驱动程序、应用程序与电源管理器相互作用来接收关于电源事件的通知和执行电源管理功能。,电源管理器结构,电源管理器PM.dll直接由设备管理器Device.dll加载。 电源管理器是分层实现的,电源管理器的代码结构是分层的MDDPDD。 MDD是抽象公共库,一般不需要改动。 PDD层与平台相关,由设备制造商自己定义。 电源管理器的源代码在C:WINCE600PUBLICCOMMONOAKDRIVERSPM,电源管理器工作过程,电源管理API接口,电

3、源管理器,通知消息队列,应用程序,驱 动 程 序,电源状态,电源状态分为设备电源状态和系统电源状态两个概念,二者是两个完全独立的的概念,但相互之间还有联系。 电源管理器用OEM中定义的系统电源状态来管理电源。 系统电源状态与设备电源状态有明确的映射关系。,系统电源状态(1/2),系统电源状态(2/2),系统电源状态由OEM定义,具体定义在注册表中。 系统电源状态的转换可以在硬件平台上以任何合理的方式发生。 在common.reg文件中,定义了默认的系统电源状态。,设备电源状态(1/3),设备电源状态(2/3),设备电源状态是预定义的,Windows CE提供了5种预定义的状态,在注册表中有相应

4、的键。 设备电源状态分别为 Full ON 电源完全开启 Low ON在低电源下提供完全功能 Standby部份供电,等待唤醒请求 Sleep睡眠,等待唤醒的最小电源 OFF未供电,设备电源状态(3/3),设备驱动程序把以上的5种预定义状态映射为有意义的状态。 电源管理器在每个设备驱动程序被加载时发送请求,来得到此设备所支持的电源状态。 驱动程序根据设备的定义来设置设备的电源状态,一般是加载时置为Full ON,卸载时置为OFF。,设备电源管理,系统电源状态与设备电源状态的分离提供了基于Windows CE设备电源管理的新的模式。 在系统还在完全供电时(Full ON),设备却可以进入低电源状

5、态以降低电源的总消耗。 一个典型的例子是,数码像机在拍摄状态,而又长时间没有按动快门时,镜头自动缩回,来降低耗电。,电源管理器接口,电源管理器要实现以下程序间的接口 电源管理的设备的驱动程序 改变系统电源状态的应用程序 电源管理的应用程序 电源事件通知的应用程序 电源管理器针对上述不同的客户采用不同的编程接口。,电源管理器三个接口,通知接口 电源管理器与电源事件通知应用程序间的接口。 驱动程序接口 电源管理器与被电源管理电源管理的设备的驱动程序间的接口。 应用程序接口 电源管理器与电源管理的应用程序间的接口。,通知接口(1/2),电源管理器利用通知接口来提醒应用程序和驱动程序得到电源事件。 应

6、用程序首先要通过CreatMsgQueue()函数来建立消息队列,电源管理器把提醒发到消息队列中。 应用程序把消息队列的句柄通过调用RequestPowerNotifications()传给电源管理器,以接收电源消息。,通知接口(1/2),应用程序通过StopPowerNotifications函数注销应用程序进程,因而它不再接收电源通知。 这一机制使得应用程序能接收电源相关事件的通知并参与系统电源状态改变的决策。,驱动程序接口(1/2),电源管理器通过两种机制与驱动程序通信 电源管理器使用DeviceIoControl()函数向下通知设备驱动程序来决定设备性能并更新设备电源状态。 设备通过驱

7、动程序调用DevicePowerNotify()函数向电源管理器请求改变设备电源状态。,驱动程序接口(2/2),为更好地实现电源管理器与驱动程序间的交互,驱动程序要实现 响应电源管理器的请求,报告它的设备电源状态。 处理电源管理器发送的电源请求。 启动后给设备加电。 关闭时给设备断电。 为设备开启唤醒功能。(设备要有该功能),电源管理器的IOCTL交互接口(1/2),IOCTL_POWER_CAPABILITIES 电源管理器 检查设备驱动程序的电源管理能力。返回的信息应该反应硬件和管理硬件设备的驱动程序的能力。驱动程序必须只返回支持的 Dx 状态。 IOCTL_POWER_SET 电源管理器

8、强制驱动程序切换为指定的Dx 状态。驱动程序必须执行这个电源切换。 IOCTL_POWER_QUERY 电源管理器检查驱动程序是否能够改变设备状态。,电源管理器的IOCTL交互接口(2/2),IOCTL_POWER_GET 电源管理器想要确定设备的当前电源状态。 IOCTL_REGISTER_POWER_RELATIONSHIP 电源管理器通知父驱动程序注册它控制的所有子设备。 电源管理器只向在POWER_CAPABILITIES 结构的 Flags 成员中包含 POWER_CAP_PARENT 标志的设备发出该IOCTL。,应用程序接口,应用程序通过API函数来接受电源事件的提醒,获得系统或设备电源状态。 一般不要求应用程序通过API函数来设定设备的电源状态。因为会覆盖电源管理器标准的设备电源状态,也会限制高级自管理设备的发挥。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号