zoukankan      html  css  js  c++  java
  • [转]WM/WINCE代码研读系列之Power Management(4)

    下面是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);
              }
          }
    }

  • 相关阅读:
    C# NameValueCollection
    visual studio使用技巧创建自己代码片段
    C#在DataTable中使用LINQ
    [转]C# 中的.pdb/ .vshost.exe/ .vshost.exe.manifest文件讨论
    C#自定义控件在添加引用后不显示在工具箱的解决方法
    Java 工程师
    redis-CRC16
    sql server-当天日期减去一天 应该如何写
    清除访问Windows共享时缓存的凭据
    cmd下查看当前登陆用户
  • 原文地址:https://www.cnblogs.com/answer/p/1956254.html
Copyright © 2011-2022 走看看