質問する質問する
 

回答済みCE6.0での電源オフ時の監視について

  • 2009年9月15日 10:46鏑木肆星 ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     
    いつもお世話になっております、鏑木と申します。
    現在、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
    です。

回答

  • 2009年9月15日 17:01ホーミンMVPユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     回答済み
    CE6.0でのRequestPowerNotificationstのサポート有無や使い方はPlatformBuilderのヘルプなりMSDN Onlineで調べてください。
    http://msdn.microsoft.com/en-us/library/bb158484.aspx

    なお電源管理に関しては一口にCE6.0といってもBSPにより実装状況が違う場合がありますので、自分の使っているBSPのドキュメント等の確認が必要かもしれません。

    またレジストリはHiveベースならば電源を切っても保存されるます。ただしBSPによってはデフォルトは電源を入れた際にいわゆるハードリセットになる(初期化処理が走る)ようにしているものもあるかもしれませんので、その場合は自分で調整しないといけないでしょう。

すべての返信

  • 2009年9月15日 17:01ホーミンMVPユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     回答済み
    CE6.0でのRequestPowerNotificationstのサポート有無や使い方はPlatformBuilderのヘルプなりMSDN Onlineで調べてください。
    http://msdn.microsoft.com/en-us/library/bb158484.aspx

    なお電源管理に関しては一口にCE6.0といってもBSPにより実装状況が違う場合がありますので、自分の使っているBSPのドキュメント等の確認が必要かもしれません。

    またレジストリはHiveベースならば電源を切っても保存されるます。ただしBSPによってはデフォルトは電源を入れた際にいわゆるハードリセットになる(初期化処理が走る)ようにしているものもあるかもしれませんので、その場合は自分で調整しないといけないでしょう。
  • 2009年9月16日 0:12鏑木肆星 ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     
    ホーミン様、ご回答ありがとうございます。

    地道にPlatformBuilderのヘルプで探してみます。

    >なお電源管理に関しては一口にCE6.0といってもBSPにより実装状況が違う場合がありますので、自分の使っているBSPのドキュメント等の確認が必要かもしれません。
    そうだったんですね、それは初耳でした。そちらの方も調べてみたいと思います。

    >またレジストリはHiveベースならば電源を切っても保存されるます。ただしBSPによってはデフォルトは電源を入れた際にいわゆるハードリセットになる(初期化処理が走る)ようにしているものもあるかもしれませんので、
    >その場合は自分で調整しないといけないでしょう。
    現在のOSではレジストリをHiveベースとして、電源をオフにしてもレジストリが残っている状態であることは確認しましたので、その点は大丈夫だと思います。

    参考となるご意見ありがとうございました。

    鏑木
  • 2009年9月26日 14:53hnakayam ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     

    基本的な考え方として、レジストリ保存の機能はOS/BSPレベルで実装するもので、SDKで開発するようなアプリケーションレベルでは考える必要はないと思います。
    (OS/BSPにレジストリ保存機能が実装してあれば保存できるし、そうでなければ保存できない)

    ただ、それでもレジストリを書いている( RegCreateKeyEx などでレジストリキーを開いてる最中 )に電源が落ちるとBSP側では保存のしようがないので、レジストリ保存は短時間に素早く

    CreateまたはOpen → Write → RegCloseKey

    とハンドルクローズまでやれば、BSP側は最新レジストリをサスペンド/OFF直前に保存するように実装することができます。


    hnakayam