CE6.0での電源オフ時の監視について
- いつもお世話になっております、鏑木と申します。
現在、Windows CE 6.0にてVisual Studio 2005のC++にてMFCのアプリケーションを開発しているのですが、
アプリケーションでの各データをレジストリに保存したいと思い、電源OFF時にその処理をできたらなと思い、そのために
は電源OFF時の監視をどのようにすればよいかわからず、質問させて頂きました。
ネットで探してみると、CE5.0ですが以下のようなサイトの方法を見つけました。
http://social.msdn.microsoft.com/Forums/ja-JP/windowsmobileja/thread/822c40c0-6cce-4ea4-8779-c3f789a74deb
この中で、RequestPowerNotificationstという関数を使えばよいとあるのですが、これはCE6.0でも同様に扱えるものなのでしょうか。
また、上記のサイト内で提示しているコードでどの個所で、電源オフを監視しているのでしょうか?(どの位置でブレークポイントを置くと、電源オフ時
にそこにとぶでしょうか?)
ご存じの方がいらっしゃいましたら、ご意見を頂ければと思います。
また、同じCE6.0のような組み込みのアプリケーションを開発した、開発している方で、今回のようにアプリケーションで作成されたデータをレジストリに
保存して、電源オフ時にも消去されないようにするためには、どのような方策をとっているのでしょうか?
こちらもご意見を頂ければと思います。
二重の質問となってしまいましたが、どうぞよろしくお願いいたします。
尚、開発環境は
Windows CE 6.0
Visual Studio 2005
です。
回答
- CE6.0でのRequestPowerNotificationstのサポート有無や使い方はPlatformBuilderのヘルプなりMSDN Onlineで調べてください。
http://msdn.microsoft.com/en-us/library/bb158484.aspx
なお電源管理に関しては一口にCE6.0といってもBSPにより実装状況が違う場合がありますので、自分の使っているBSPのドキュメント等の確認が必要かもしれません。
またレジストリはHiveベースならば電源を切っても保存されるます。ただしBSPによってはデフォルトは電源を入れた際にいわゆるハードリセットになる(初期化処理が走る)ようにしているものもあるかもしれませんので、その場合は自分で調整しないといけないでしょう。- 回答としてマーク鏑木肆星 2009年9月17日 1:58
すべての返信
- CE6.0でのRequestPowerNotificationstのサポート有無や使い方はPlatformBuilderのヘルプなりMSDN Onlineで調べてください。
http://msdn.microsoft.com/en-us/library/bb158484.aspx
なお電源管理に関しては一口にCE6.0といってもBSPにより実装状況が違う場合がありますので、自分の使っているBSPのドキュメント等の確認が必要かもしれません。
またレジストリはHiveベースならば電源を切っても保存されるます。ただしBSPによってはデフォルトは電源を入れた際にいわゆるハードリセットになる(初期化処理が走る)ようにしているものもあるかもしれませんので、その場合は自分で調整しないといけないでしょう。- 回答としてマーク鏑木肆星 2009年9月17日 1:58
- ホーミン様、ご回答ありがとうございます。
地道にPlatformBuilderのヘルプで探してみます。
>なお電源管理に関しては一口にCE6.0といってもBSPにより実装状況が違う場合がありますので、自分の使っているBSPのドキュメント等の確認が必要かもしれません。
そうだったんですね、それは初耳でした。そちらの方も調べてみたいと思います。
>またレジストリはHiveベースならば電源を切っても保存されるます。ただしBSPによってはデフォルトは電源を入れた際にいわゆるハードリセットになる(初期化処理が走る)ようにしているものもあるかもしれませんので、
>その場合は自分で調整しないといけないでしょう。
現在のOSではレジストリをHiveベースとして、電源をオフにしてもレジストリが残っている状態であることは確認しましたので、その点は大丈夫だと思います。
参考となるご意見ありがとうございました。
鏑木 基本的な考え方として、レジストリ保存の機能はOS/BSPレベルで実装するもので、SDKで開発するようなアプリケーションレベルでは考える必要はないと思います。
(OS/BSPにレジストリ保存機能が実装してあれば保存できるし、そうでなければ保存できない)
ただ、それでもレジストリを書いている( RegCreateKeyEx などでレジストリキーを開いてる最中 )に電源が落ちるとBSP側では保存のしようがないので、レジストリ保存は短時間に素早く
CreateまたはOpen → Write → RegCloseKey
とハンドルクローズまでやれば、BSP側は最新レジストリをサスペンド/OFF直前に保存するように実装することができます。
hnakayam


