昨日の作業で IC25N040ATMR04 の不良セクタが修復されたことが確認できたため、FAT に記録された不良クラスタ情報を消すことにした。まずは、不良クラスタをリストアップするツールを作成。6個の不良クラスタマークが発見された。昨日の HDD Reg のログと比較すると、1つ少ないが、昨日読み取れなかったファイルが不良クラスタとしてマークされていなかっただけで、それを考慮すると個数は一致する。
ディスクエディタが見当たらないので、自作のセクタ読み込みツールを使って FAT を読み込み、バイナリエディタで編集後、セクタ書き込みツールを作成して、FAT にデータを書き込んだ。念のため scandisk を掛けて、問題ないことを確認した。
そういえば、2個目の FAT のことを考慮していなかったが・・・。どの時点で 1個目の FAT から 2個目の FAT にコピーが行われるのだったか。
Ls150 を使っていたら、読み取れないファイルがあることが発覚した。読み取りエラーにはなるが、HDD アクセス時に異音は発生しておらず、おそらく磁気的なエラーと考えられる。HDD Regenerator を使って、修復を試みることにした。
久しぶりに Ls150 を分解したところ、埃がかなりたまっていた。IC25N040ATMR04 を取り外して別マシンに接続し、自動ループバッチファイルを実行して就寝。朝起きたら 7セクタの修復が行われていた。件のファイルを確認すると、全く問題なく読み取ることができた。すばらしい。
DOS の scandisk の画面を見ると、不良クラスタマークがある。HDD Regenerator で不良セクタが修復されても、FAT に記録された不良クラスタ情報までは修復してくれないわけだが、どうすべきだろうか。
HDD Health で S.M.A.R.T. 情報を見ると、以下のようになっていた。
Reallocation Event Count: 7 events Current Pending Sector Count (Unstable Sectors): 1 sectors
セクタ代替回数がちょうど 7回になっているが、不良セクタは、セクタ代替によって回復したのだろうか。それとも、セクタ代替とは関係無しに "regenerate" により回復したのか、あるいは、"regenerate" によりデータを吸い出した上で、セクタ代替を行っているのか、どうなっているのだろう。
HDD Regenerator を掛ける前に S.M.A.R.T. 情報を見ておかなかったのは失敗だった。不安定なセクタが 1つあるというのが気になるところ。
IC25N040ATMR04 の 5年保証は数日前に切れてしまった。せっかく保証を延長したのに・・・。何年か前の少し調子が悪かったときに修理に出しておいた方が良かったか? 今後、この HDD をどうするか問題だ。新しい HDD を買って丸ごとコピーするか、だましだまし使い続けるか、それとも、そろそろこの PC 自体使うのをやめるか。既に発売から 11年経っているわけだし。
SC が、Windows Update の自動インストール後に勝手に再起動してしまっていた。勝手に再起動するのをやめようと思い、gpedit.msc で設定を変更しようと思ったのだが、gpedit.msc が見当たらない。Vista Home Premium には、gpedit.msc が無いようだ。さて困った。とりあえず、Windows Update の設定で、更新プログラムのダウンロードはするが、インストールは尋ねるように変更しておいた。レジストリを少し探してみたが、インストールは自動で行い、再起動は自動で行わないようにする設定は見つからなかった。
2ch で、新しいグラフィックドライバが出たという情報があった。さらに、動画再生支援 (DXVA) が効くようになったという情報があったので試してみることにした。
Intel のサイトからダウンロード。"This file is intended for use by Developers." などと書いてあるが気にしない。インストールには数分かかり、途中で画面が消えたり、解像度がおかしくなったりしてちょっと焦ったが問題なくインストール完了。
Media Player Classic Homecinema (MPCHC) 内蔵の H.264 デコーダで DXVA を有効にしたところ、ファイルが再生できずに落ちてしまった。PowerDVD 8 の H.264 デコーダで DXVA を有効にして、MPCHC の出力先を EVR (Vista / .Net3) にしたところ、フル HD の H.264 が SC でも全く問題なく再生できるようになった。これは素晴らしい。
WMP11 で H.264 を再生するとどうなるか試してみようと思い、Haali Media Splitter をインストールしてみたが、ガクガクになってしまった。どうも DXVA が効いていない気がする。どうやら PowerDVD の H.264 デコーダは、アプリごとに設定を記憶しているらしい。WMP11 から、PowerDVD の H.264 デコーダの設定画面を呼び出す方法が分からなかったので、レジストリを直接編集して、全アプリで DXVA が有効になるようにしてみた。以下のレジストリファイルを読み込ませたところ、WMP でも DXVA を使って H.264 を再生できるようになった。ただし、ウィンドウモードでは、スムーズに再生できるようになったが、フルスクリーンモードではまだ駄目なようだ。WMP11 では EVR も有効になっているらしいが、他に設定すべきものはあるのか?
REGEDIT4 [HKEY_CURRENT_USER\Software\Cyberlink\Common\cl264dec] "UIUseHVA"=dword:00000001
H.264 だけではなく、DivX や WMV でも DXVA が使えるようになるといいのだが。少なくとも、US15W は WMV の再生支援機能を備えているようだ。
掲示板で、えむけいさんから、SE_BACKUP_NAME特権とSE_RESTORE_NAME特権を有効にすればよいとのアドバイスがあったので試してみた。あっさり、リンク先を書き換えることができてしまった。これで少しは CF-R6M が安定すれば良いのだが・・・おそらく関係ないだろうな。
CF-R6M のジャンクションやシンボリックリンクのリンク先が不正になっている問題で、修正ツールを作ってみようと思った。リンク/ジャンクション作成ツールのソースを参考に、FSCTL_GET_REPARSE_POINT でデータを取得して、リンク先を E: から C: に書き換えて、FSCTL_SET_REPARSE_POINT でデータを書き込もうとしたのだが、アクセス拒否されてしまった。ファイルの所有者が SYSTEM になっており、Admin 権限を持っていても自由に書き換えできないというのが非常にやっかいだ。さてどうしたものか。
SpringM でジャンクションやシンボリックリンクのリンク先を表示できるようにしようと思い、作業中に Let's note CF-R6M の問題発見。
例えば、C:\Documents and Settings は、Vista では C:\Users へのジャンクションになっているはずだが、CF-R6M では E:\Users へのジャンクションになっていた。また、C:\Users\All Users は、C:\ProgramData へのシンボリックリンクのはずだが、E:\ProgramData へのシンボリックリンクになっていた。同様に、インストール時に作成されるリンクはすべて C: ではなく E: へのリンクになっていた。これはひどい。mylets の 120GB モデルだけの問題なのか、それとも全モデルの問題なのか?
工人舎 SC で Firefox 3.0 を使っていると、F11 キーでフルスクリーンモードに移行したとき、画面上部のロケーションバーなどがアニメーションで消える動作が非常に重い。アニメーションをオフにする方法はないかと about:config を見たところ、browser.fullscreen.animateUp というものがあった。値を 1 から 0 に変更したところ、アニメーションしなくなった。
ファイルのダウンロードが完了したときに出る表示のアニメーションも切りたいのだが、こちらの設定は分からなかった。
工人舎 SC で 640x480 29.97fps 2Mbps の WMV ファイルを再生してみたところ、かなりコマ落ちが発生。時々ブロックノイズまで出てしまう。1Mbps 〜 1.5Mbps 程度の DivX だと、ブロックノイズまでは出ないが時々コマ落ちが発生。再生速度を上げると、1.3倍速辺りから音飛びが発生。これはちょっと厳しいかも。
ニコ動は時々コマ落ちするものの十分に見れるレベル。
各社から相次いで発売され始めた UMPC (Ultra Mobile PC) や ULCPC (Ultra Low-Cost PC) を見てきた。
一番人気はやはり EeePC 901-X のようだ。サイズは Let's note R の縦を一回り小さくした感じ。軽く触ってみた感じとしては、スライドパッドのボタンが少し押しにくかった。重さが 1kg を超えたのが非常に残念。HP 2133 は、でかい上にやたら熱い。MSI の Wind U100 も気になるが、実物には触れず。Acer の Aspire one は発売がかなり先なので実物も無し。
さて、自分が一番気になっているのは工人舎の SC シリーズ。他の UMPC よりもさらに一回り小さいサイズが魅力。実際に触ってみたところ、キータッチは、以前使っていた FIVA 102 とよく似た感じで許容範囲だった。秋葉ヨドバシでは、GPS, Bluetooth 付きモデルはすでに売り切れ。イー・モバイルをセットで申し込むかも悩みどころ。店によって料金プランが異なっているようだ。
結局、GPS, Bluetooth 無しの SC3KP06A を購入。イー・モバイルも無し。何となく気分で、延長保証も付けなかった。延長保証を付けると故障せず、付けないと故障するというのはよくあるパターンだが・・・。箱がかなり小さいことに驚いた。
帰ってから早速使ってみたが、記号類が FIVA 102 以上に打ちにくい。タッチパネルは使いこなすとなかなかおもしろそう。ただし、画面右端の反応が悪いのが気になった。AC アダプタは Let's note CF-R6M と同一のようだ。ExpressCard/34 と SD カードが奥まで挿さらず、はみ出してしまうのはよろしくない。
FIVA 102 とサイズを比較してみた。なかなかいい勝負だ。
機種 | サイズ | 重さ |
---|---|---|
工人舎 SC | 189mm (W) x 155mm (D) x 25.4〜33mm (H) | 798g (GPSモデルは 820g) |
FIVA 102 | 210mm (W) x 132mm (D) x 25mm (H) | 840g |
さて、買ったはいいが何に使おうか。
自分が不満に思っていた機能はほぼ修正し終わったかな。あとは、構造体の定義をインポート・エクスポートできるようになるといいのだが、かなり面倒なことになりそうなので実装するつもりはない。元の 1.8E での修正箇所が知りたかったが無理だろうか。
Binary maid の改造作業中に、間違って CheckMenuRadioItem() に変な値を渡してしまったところ、すべてのウィンドウがどこかに消えてしまって、壁紙のみが表示される奇妙な状態になってしまった。Windows キーを押したところ、スタートメニューは表示されたので、とりあえず再起動して復帰した。しかし、再起動後も一部のソフトはウィンドウ位置が狂っていたため、キーボード操作 (Shift+Space, M) でウィンドウを移動して復旧できた。座標系がおかしくなっていたようだが、メニューの操作でこんなことになるとは驚いた。
SetWindowText() の挙動ではまった。IsWindowUnicode() が TRUE を返すエディットコントロールに対して、SetWindowTextA() で文字列を設定すると、自動的に ANSI から Unicode への変換が行われるが、文字列の末尾が Unicode に変換できない不正なバイト列だと、文字列終端の L'\0' が設定されず、ゴミが表示されてしまうようだ。
引き続き Binary maid を改造中。構造体編集画面で IME から Unicode 固有文字を入力できなかった原因が判明。メインのメッセージループ以外にもメッセージループがあり、そちらで Unicode 版の API を使っていなかったのが原因だった。
アプリ全体を Unicode 化するのではなく、入力部分を Unicode に対応するための方法をまとめてみた。ここでの入力とは、WM_CHAR, WM_IME_CHAR を指す。
入力を Unicode で受け取るためには、IsWindowUnicode() が TRUE を返すウィンドウでなければならない。また、IsWindowUnicode() が TRUE を返す場合でも、メッセージを正しく処理しないと文字化けなどが発生する。そのためには、以下のことが必要。
もちろん、これらの API は Win9x では使えないので、Win9x にも対応するには、処理を振り分けたり MSLU (unicows.dll) を使うなどの対策が必要である。
先月の spam メールの集計結果。着信拒否にならなかった spam が少なくとも 1076通。そのうち、@nifty の迷惑メールフォルダーでも Spam Mail Killer でも spam として認識できなかったものはなし。