W-ZERO3(WS003SH)にFeederReaderをインストールして通勤するときにPodCastを聞いています。朝起きて身支度をするときに一連の動作が身についています。ボーっとした頭で毎日操作しています。
無線LANを使ってインターネットに接続し、miniSDカードにエンクロジャーをダウンロードするように設定しているのですが、ダウンロードしている途中でダウンロードが進まなくなることがよくあります。ダウンロードが進まないだけでFeederReaderのメニューなどは操作できますし、OSのメニューも操作できます。ダウンロードするスレッドだけがロックアップしているような感じです。
pRSSreaderなどの他のアグリゲータを試しましたが大きなファイルをダウンロードするとやはり、たまにロックアップしました。メモリカードを高速なものに交換してみたり、フォーマットしなおしてみたりしたのですが効果がありませんでした。OSをフォーマットしてFeederReaderをインストールし直したりもしました。また、PocketPCで動作するデフラグツールPocket Mechanicを購入して使ってみたりもしました。何をやってもだめでした。
万策尽きて、やけくそでダウンロードが進まなくなっているときに試しにminiSDカードをイジェクトしてみたら、ロックアップが外れて、エラーが出ました。あっ、これはminiSDカードスロットを制御しているディバイスドライバが悪いんじゃないかと思って、レジストリを眺めてみました。
HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SDBusDriverという場所にThreadPriorityというキーがありました。最初に入っていた値は100(64h)なのですがこれを変更してみました。Windows CEではスレッドの優先順位は値が小さいほど高いそうなので、0に書き換えてみました。これで1週間経ちましたがロックアップしなくなりました。miniSDカードが調子悪いという方、試してみてはどうでしょうか。
0に書き換えて使っているうちにボタンを押したときに出るプシッというような音が出なくなってしまいました。1にしてみたらこのような副作用も無く、快調です。と思ったら、まだたまにロックアップします。後日談はここに。
Pocket Mechanicを使ってminiSDカードをフォーマットするときに選択できる項目の中にCreate a backup copy of the FAT on the volumeというのがあります。説明を読んではじめて知ったのですが、FATファイルシステムはファイルアロヘーションテーブルを2箇所に書き込んでおり、テーブルのリードミスに対して冗長性を持たせているそうです。半導体メモリなのでディスクほど気にしなくてもいいのじゃないかと思います。テーブルのバックアップコピーを作成しないようにフォーマットするとアクセス速度が向上するそうです。やってみましたが効果がありました。CorePlayerでベンチマークを測定しましたが結果は忘れました。