请教在 Windows Mobile 5,6 (PPC) 上如何保持 SD 卡的供电(即便在系统 suspend 的时候)

alphapaopao 2008-02-17 06:15:59
请教在 Windows Mobile 5,6 (PPC) 上如何保持 SD 卡的供电(即便在系统 suspend 的时候)

问题起因:
由于 WM 会在系统 suspend 的时候关闭 SD 卡电源,于是导致在系统 awake 之后应用程序所持有的文件句柄失效(短暂失效或者永久失效),进而导致应用程序崩溃。典型的应用是 GPS 或者金山词霸等大数据量的应用程序。另外,由于手机的内部存储容量很小,极容易装满,所以总会有机会将程序安装到 SD 卡上的。

于是,如何防止应用程序崩溃呢?其中一个办法就是在系统 suspend 的时候,仍然保持 SD 卡供电。

我的尝试:
查看许多资料,都建议调用 SetPowerRequirement。
我的代码是
m_code =L"{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}\\DSK1:";
HANDLE hRequire = SetPowerRequirement(L"{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}\\DSK1:", D0, POWER_NAME|POWER_FORCE, NULL, 0);
ASSERT(hRequire != NULL);
DWORD err = GetLastError();

返回值表明一切正常。但是,金山词霸等在 SD 卡上运行的程序仍然出现了崩溃或者无声无息地退出。

如何重现:
多次按电源键,让系统不断重复 suspend - awake 的过程。每个状态停留的状态5 秒左右,最好 10 秒。另外,断开 USB 供电。


Thanks in advance!

sunshaking at-> gmail.com
...全文
176 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
alphapaopao 2008-08-30
  • 打赏
  • 举报
回复
没有解决。
lweiqi 2008-07-25
  • 打赏
  • 举报
回复
请教在 Windows Mobile 5,6 (PPC) 上如何保持 SD 卡的供电(即便在系统 suspend 的时候)

我也遇到这个问题,请问是怎么解决的呢??非常感谢!!

alphapaopao 2008-02-26
  • 打赏
  • 举报
回复
dissapointed...
  • 打赏
  • 举报
回复
最好的办法是使用 db4o 之类的东西来保存你的程序对象。 db4o很简单,只要1天就可以学会。一旦使用它,即使用户随时把电池拔出来也不怕了。
载舟之水 2008-02-18
  • 打赏
  • 举报
回复
SD卡是否供电不是由它决定的,而是由系统的PM driver决定的,所以你无法更改。
唯一的办法是阻止系统进入suspend,但是这样一来,你的手机就十分耗电了。
alphapaopao 2008-02-17
  • 打赏
  • 举报
回复
另外,在手机上运行 “设备管理器” 可看到 SD 卡的驱动器名是 “DSK1:"

19,520

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧