在WINCE 6。0重,冷启动怎么实现呢?
我用的板是x86 单板机,系统是WINCE 6。0。在网上看了下,冷启动有多种方法。常用的是使用看门狗和KernelIoControl().
看门狗怎么用呢,是不是要查这款单板机的资料,再写程序,不太熟悉硬件。
在WINCE 6。0中,好象KernelIoControl函数也不能直接调用了,在网上翻了个遍,都没有真正成功过的实例。
我就想增加冷启动这个Case就行了,是不是在D:\WINCE600\PUBLIC\COMMON\OAK\OALIOCTL\oalioctl.cpp中的IOControl函数中,在case IOCTL_PROCESSOR_INFORMATION:后面加上case IOCTL_HAL_REBOOT:就可以了,因为IOCTL_HAL_REBOOT是系统已经实现了它的处理函数,只是在wince 6.0中为了安全不让ap调用而已,就像http://topic.csdn.net/u/20101016/21/2c1780dc-4868-449f-8731-ef5479851082.html中LoongEmbedded说的那样。
可是我这样做了,然后在应用程序中SetCleanRebootFlag();
BOOL flag == KernelIoControl(IOCTL_HAL_REBOOT, NULL, 0, NULL, 0, NULL) ;调用返回错误,wince程序也异常终止了!!!!
到底如何实现冷启动,请有经验的高手出来指点下啊!!
万分感谢!!
------解决方案--------------------
冷启动,楼主是怎么理解啊?我学习一下。
------解决方案--------------------
------解决方案--------------------
試試
SetSystemPowerState(NULL, POWER_STATE_RESET, POWER_FORCE);
Paul, Chao @ Techware
------解决方案--------------------
只要驱动没问题SetSystemPowerState可以起作用!