wince的定时关机驱动

wince的定时关机驱动

ID:37714522

大小:32.50 KB

页数:5页

时间:2019-05-29

wince的定时关机驱动_第1页
wince的定时关机驱动_第2页
wince的定时关机驱动_第3页
wince的定时关机驱动_第4页
wince的定时关机驱动_第5页
资源描述:

《wince的定时关机驱动》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、wince的定时关机驱动2009-06-0220:59以前平台的定时关机是利用wince自带的定时休眠部分代码实现的,同事老是说定时关机时间不准确,所以花了点时间,写了个简单的驱动。具体看下面的代码:#include#include"s2410.h"//#include//try#defineMAXACTIVITYTIMEOUT             (0xFFFFFFFF/1000)//insecondsstaticHANDLEgThread;voidExitWince(){   //关机  

2、 staticvolatileIOPreg*v_pIOPregs;   v_pIOPregs=(volatileIOPreg*)IOP_BASE;   v_pIOPregs->rGPBCON&=~(3<<4);   v_pIOPregs->rGPBCON

3、=(1<<4);   v_pIOPregs->rGPBDAT&=~(1<<2);   Sleep(15);   v_pIOPregs->rGPBDAT

4、=(1<<2);}BOOLGetAutoPowerOffTime(BYTE*Buffer){   HKEYhResult;   LON

5、GlRet;   LPWSTRlpSubKey=_T("\System\CurrentControlSet\Control\Power\Timeouts");   DWORDsize=sizeof(Buffer);   lRet=RegOpenKeyEx(HKEY_LOCAL_MACHINE,lpSubKey,0,KEY_ALL_ACCESS,&hResult);   if(lRet!=ERROR_SUCCESS)   {       returnFALSE;   }   lRet=RegQueryValueEx(hResul

6、t,_T("ACUserIdle"),NULL,NULL,(LPBYTE)Buffer,&size);   if(lRet!=ERROR_SUCCESS)   {          returnFALSE;   }   RegCloseKey(hResult);   returnTRUE;}DWORDGetPowerOffTime(){   DWORDACUserIdleTimeout;       if(GetAutoPowerOffTime((byte*)&ACUserIdleTimeout))   {       if(ACUse

7、rIdleTimeout==0)       {           ACUserIdleTimeout=INFINITE;       }       else       {           if(ACUserIdleTimeout>MAXACTIVITYTIMEOUT)           {               ACUserIdleTimeout=MAXACTIVITYTIMEOUT;           }       }       //转成毫秒       if(ACUserIdleTimeout!=INFIN

8、ITE)       {           ACUserIdleTimeout*=1000;       }   }   else   {       ACUserIdleTimeout=INFINITE;   }   returnACUserIdleTimeout;}DWORDEventThread(PVOIDpArg){   DWORD  dwResult;   DWORD  dwTimeout=INFINITE;   HANDLEgEvent[2];       //创建事件   gEvent[0]=CreateEvent(NU

9、LL,FALSE,FALSE,L"PowerOffTimeOutChange");   gEvent[1]=CreateEvent(NULL,FALSE,FALSE,L"UserInputEvent");       //读自动关机时间   dwTimeout=GetPowerOffTime();   while(1)   {       dwResult=WaitForMultipleObjects(2,gEvent,FALSE,dwTimeout);       if(dwResult==WAIT_TIMEOUT)       { 

10、          ExitWince();       }       else       {           if(dwResult==WAIT_OBJECT_0)           {    

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。