WM/WINCE代码研读系列之Power Management(4)
2009-11-21 11:02
405 查看
下面是PmSetSystemPowerState函数的详细内容
PmSetSystemPowerState
{
PlatformSendSystemPowerState
{
SendSystemPowerState
{
PlatformMapPowerStateHint; //将StateFlags转化成电源状态名
{
对应关系如下:
POWER_STATE_ON -- _T("on");
POWER_STATE_IDLE -- _T("screenoff");
POWER_STATE_SUSPEND -- _T("suspend");
POWER_STATE_OFF -- _T("suspend");
POWER_STATE_CRITICAL -- _T("suspend");
POWER_STATE_RESET -- _T("reboot");
POWER_STATE_USERIDLE -- _T("useridle");
}
//下面两个函数由要设置的电源状态名得到相应的对象指针
SystemStateToActivityState
GetStateObject
AppsCanRequestState //判断要设置的电源状态是否可以被设置
if((dwOptions & POWER_DUMPDW)!=0)
{
//Options 参数带POWER_DUMPDW 时会产生Dr. Watson dump file.
CaptureDumpFileOnDevice;
}
pNewPowerState->EnterState();//这里是实质的设置函数
//将电源状态的状态机转至设置的系统电源状态
pNewPowerState = SetSystemState(pNewPowerState);
m_pCurPowerState = pNewPowerState;
//将ResumingSuspendTimeout,SuspendTimeout,BacklightTimeout,UserIdleTimeout这几个定时器复位
ReInitTimeOuts(FALSE);
//通知PowerStateManager::ThreadRun,这里没有做实质性内容
SetEvent(m_hSystemApiCalled);
}
}
}
PmSetSystemPowerState
{
PlatformSendSystemPowerState
{
SendSystemPowerState
{
PlatformMapPowerStateHint; //将StateFlags转化成电源状态名
{
对应关系如下:
POWER_STATE_ON -- _T("on");
POWER_STATE_IDLE -- _T("screenoff");
POWER_STATE_SUSPEND -- _T("suspend");
POWER_STATE_OFF -- _T("suspend");
POWER_STATE_CRITICAL -- _T("suspend");
POWER_STATE_RESET -- _T("reboot");
POWER_STATE_USERIDLE -- _T("useridle");
}
//下面两个函数由要设置的电源状态名得到相应的对象指针
SystemStateToActivityState
GetStateObject
AppsCanRequestState //判断要设置的电源状态是否可以被设置
if((dwOptions & POWER_DUMPDW)!=0)
{
//Options 参数带POWER_DUMPDW 时会产生Dr. Watson dump file.
CaptureDumpFileOnDevice;
}
pNewPowerState->EnterState();//这里是实质的设置函数
//将电源状态的状态机转至设置的系统电源状态
pNewPowerState = SetSystemState(pNewPowerState);
m_pCurPowerState = pNewPowerState;
//将ResumingSuspendTimeout,SuspendTimeout,BacklightTimeout,UserIdleTimeout这几个定时器复位
ReInitTimeOuts(FALSE);
//通知PowerStateManager::ThreadRun,这里没有做实质性内容
SetEvent(m_hSystemApiCalled);
}
}
}
相关文章推荐
- WM/WINCE代码研读系列之Power Management(4)
- [转]WM/WINCE代码研读系列之Power Management(6)
- WM/WINCE代码研读系列之Power Management(5)
- WM/WINCE代码研读系列之 Power Management(1)
- [转]WM/WINCE代码研读系列之 Power Management(1)
- WM/WINCE代码研读系列之 Power Management(1)
- [转]WM/WINCE代码研读系列之 Power Management(2)
- WM/WINCE代码研读系列之 Power Management(3)
- WM/WINCE代码研读系列之 Power Management(3)
- [转]WM/WINCE代码研读系列之 Power Management(3)
- WM/WINCE代码研读系列之 Power Management(2)
- [转]WM/WINCE代码研读系列之Power Management(4)
- WM/WINCE代码研读系列之Power Management(5)
- WM/WINCE代码研读系列之 Power Management(2)
- WM/WINCE代码研读系列之Power Management(6)
- [转]WM/WINCE代码研读系列之Power Management(5)
- WM/WINCE代码研读系列之Power Management(6)
- wm8960驱动:裸机代码研读
- 把PC上的代码移植到WINCE上
- 对WM_NCHITTEST消息的了解+代码实例进行演示(消息产生消息,共24个枚举值)