WEB开发网
开发学院手机开发Windows Mobile 开发 window mobile power management关于device power... 阅读

window mobile power management关于device power state的管理

 2010-08-22 13:11:00 来源:WEB开发网   
核心提示:由深入浅的帮你揭开mobile power manager(也就是pm.dll)是如何调度设备的power state,先分析power manager的内部结构,window mobile power management关于device power state的管理,再从API的角度帮你理解power manage

由深入浅的帮你揭开mobile power manager(也就是pm.dll)是如何调度设备的power state。先分析power manager的内部结构,再从API的角度帮你理解power management API的不同。他们是:

DevicePowerNotify()

SetDevicePower()

SetPowerRequirement()

ReleasePowerRequirement()

这几个函数,如果你不听我讲,光想通过看看microsoft的官方文档来理解,那是不可能的!信不信由你。

重要的数据结构

power manager为每一个被管理的设备维护着一个数据结构,它的定义简化后如下:

// this structure describes a power-manageable device

typedef struct _DeviceState_tag {

。。。

CEDEVICE_POWER_STATE curDx; // current official power state (not necessarily supported by the device)

CEDEVICE_POWER_STATE floorDx; // minimum device power state, or PwrDeviceUnspecified

CEDEVICE_POWER_STATE ceilingDx; // maximum device power state, or PwrDeviceUnspecified

CEDEVICE_POWER_STATE setDx; // power state if explicitly set, or PwrDeviceUnspecified

CEDEVICE_POWER_STATE lastReqDx; // last state requested by the device

CEDEVICE_POWER_STATE actualDx; // current actual device power state

CEDEVICE_POWER_STATE pendingDx; // Pending DX for updating

DWORD dwNumPending; // Number of Pending for updating.

。。。

} DEVICE_STATE, *PDEVICE_STATE;

居 然有这么多的device power state来影响最后的一个power state的结果。也就是说power manager是个调度中心,当它最后决定某个设备最终该是什么power state(D0/D1/D2/D3/D4)的时候,要参考上面这些成员变量。所以我们第一件事是要搞清楚power manager的调度原则。

power manager的调度原则

设备的电源状态总共有D0,D1,D2,D3,D4 (D0〈D1〈D2〈D3〈D4)。ceilingDx与floorDx听名字就知道是天花板和地板的意思(ceilingDx〈floorDx),人是生活在天花板和地板之间的空间的。在电源管理里面,意思就是天花板和地板之间的电源状态为有效状态。

例如:

1 2 3  下一页

Tags:window mobile power

编辑录入:coldstar [复制链接] [打 印]
赞助商链接