检测Windows Mobile设备上的软重置

时间:2011-09-28 10:54:19

标签: c# windows-mobile compact-framework

有没有办法让我的Windows Mobile 6.1应用程序对系统重置做出反应? 如果重要,我正在使用Compact Framework 3.5。

1 个答案:

答案 0 :(得分:1)

系统重置(即通过IOCTL_HAL_REBOOT调用内核)通过电源管理器(它应该是,OEM可能已经选择了,但这种情况很少见)。在重置期间,PM会广播电源管理通知,您可以通过调用RequestPowerNotifications API来接收该通知。电源管理器最后做的事情之一是单线程并调用所有驱动程序的Xxx_PowerDown方法。此时驱动程序可以选择进行清理,最终刷新等进入稳定状态,然后设备重新启动。

从应用程序的角度来看,RequestPowerNotifications调用是您唯一能做的事情。请注意,PM广播通知并继续移动。 not 等待任何人完成任何活动(就像调用Xxx_PowerDown一样)。这通常意味着您的应用程序永远不会收到通知,或者如果它确实您只有机会运行几行代码(我认为我见过的最多的是4行)。在暂停/恢复时,应用程序代码通常在您重新唤醒后运行。通过复位,由于RAM和处理器被重置,您将无法获得这个机会。

所以,在那个冗长的回复之后,简短的回答是你可能能够得到通知,但即使你这样做也不太可能你真的能够做任何事情回应它。