四极管:WinCE 电源管理概述(六)

 

2.2.系统电源状态转换

    在下列情况下电源管理器将对系统电源状态进行转换:

·一个OEM特定的事件发生时需要做电源状态的切换。

·应用程序调用SetSystemPowerState。

OEM特定的事件可能包括设备供电从外接电源切换为使用电源电池供电,长时间的系统闲置,将设备插入底座,或者电池电量低等,OEM根据具体情况修改电源管理器,来判断两种电源状态的切换是否合理,并做相应的切换。Platform Builder提供的电源管理器源代码仅支持在设备从外接电源切换为电池供电时进行系统电源状态的转换。

应用程序可以调用SetSystemPowerState来使用电源状态的名称表示系统电源状态的参数,如果OEM应用程序了解OEM定义的系统电源状态,可以选择使用明确的电源状态名称来调用,即显示调用。独立于平台的应用程序,通常会设置位,并允许电源管理决定如何进行电源状态映射。电源管理器可以限制应用程序调用SetSystemPowerState的状态。

2.3 系统电源状态举例

    系统电源状态到设备电源状态的映射示例如下:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\State\On]
    "Default"=dword:0           ; D0
    "Flags"=dword:10000         ; POWER_STATE_ON
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\State\UserIdle]
    "Default"=dword:1           ; D1
    "Flags"=dword:0
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\State\SystemIdle]
    "Default"=dword:2           ; D2
    "Flags"=dword:0
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\State\Suspend]
    "Default"=dword:3           ; D3
    "Flags"=dword:200000        ; POWER_STATE_SUSPEND
; @CESYSGEN IF CE_MODULES_NDIS
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\State\Suspend\{98C5250D-C29A-4985-AE5F-AFE5367E5006}]
    "Default"=dword:4           ; D4
; @CESYSGEN ENDIF CE_MODULES_NDIS

下表描述了上面注册表的映射方式。

系统电源状态

设备电源状态

On

D0

UserIdle

D1

SystemIdle

D2

Suspend

D3。NDIS迷你接口单独映射为D4

当系统使用上面的注册表配置,并进入Suspend状态,除了NDIS迷你接口会被关闭外,其他可唤醒源都将处于可激活状态。如果有设备不支持D3状态,它将自动进入D4状态。

应用程序可以使用SetPowerRequirement创建设备电源要求,当然也可以使用电源管理器控制面板程序创建附加的设备电源要求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值