Windows CE (.NET) とか IoTとか

組込みWindows と IoTの話を扱います

CE Update Checkの研究(その2)

CE Update Checkの動作ですが、よく見ると2パスでチェックしているようなプログレスバーの動きになることに気が付きました。そこで、以下のような動作ではないかと予想しました。

パス1 - インストールされたQFEのチェック

まず、現在の最新QFEリストをインターネット上のサーバーから取得します。
CE 5.0の場合は2004年のリリース直後からのQFEがリストされます。CE 6の場合は サポートされるのはR3リリース以降となり、2009年9月以降のリストが取得されます。ここで取得されたエントリがCE UpdateCheckのリストビューで表示される項目になります。

これに対して、すでにローカルでインストールしたQFEを\Windows\WinCE50.ini または \Windows\WinCE60.ini から取得し、インターネットから取得したサポートQFEの一覧と照合します。もしサポートQFEの項目をインストールした情報が存在する場合には、その項目はとりあえず緑の注意マークに変更されます。(インストール済みQFEのリストに含まれていない項目は黄色のびっくりマークになります)

パス2 - QFEに含まれるファイルのCRCチェック

緑のチェックマーク項目になっているQFEのそれぞれのファイルのCRCをチェックします。もしファイルのCRCがQFE情報のものと一致しない場合には、赤のビックリマークに変更されます。

========================================

つまり、CEUpdateCheckを実行した時点で有効なQFEのリストはインターネットから取得し、WinCE50.ini または WinCE60.ini ファイルからはQFEのインストール履歴を取得するのではないかという想定です。もしCE6 R2やR3をインストールすると、WinCE60.iniは空の状態にリセットされ、その後のQFEインストールを記録すると考えられます。また、このインストール済みQFE一覧を見て、あるQFEがすでにインストールされたものなのか、まだインストールしていないものなのかを(QFEインストーラ自体が)自己チェックしているのでは、という話もあります。

そうすると、(CE6の場合) 現在R2のQFEのチェックをすることはできず、チェックできるのはR3をインストールした以降のQFEのみ、となるのですがこの予想は正しいでしょうか???