CrystalDiskInfo -Feena- #2
【0x09:Power On Hours】
調査したところ、単位は『時間』だけでなく、『秒』、『分』、『30秒(Half Minutes)』の 4 種類あることがわかりました。HDD メーカーごとにまちまちな上、同じメーカーでも型番(ファームウェア)によって異なる場合もあるようです。合併やらなにやら色々ありますからね~ HDD 業界は。
というわけで、一貫して同じ単位を使っているメーカーの場合は、その単位を設定し、それ以外の場合は、どの単位を使っているか判定するルーチンを作りたいと思います。
◇単位判定アルゴリズム
約 130 秒のタイマーを作成し、Power on Hours の増加値をチェックします。
- 0-1: 時間
- 2-3: 分
- 4-5: 30 秒
- 6- :秒
ちょっと時間はかかりますが、アルゴリズム自体は簡単です。一回判定したら ini ファイルに単位を記録しておけばよいでしょう。
ただ、1 つ非常にまずいことが判明したのですが、『分』で管理している HDD の中には 65535 分(約 45.5 日)を超えた時点でオーバーフローし、0 に戻るものがあるようです。なんということでしょうか!?これでは全然役に立ちません。『時間』と『秒』については大丈夫そうです。65535 時間(約 7.5 年)も使いませんし、『秒』の場合は、32bit 使っているんでしょう。多分。
そんなわけで、上記機能は、近日中に実装予定です。
現在、様々な S.M.A.R.T 関連ソフトを試しているのですが、商用ソフトでもここら辺の判定がいい加減なものもあるようです。
1件の返信
[…] 通電時間の単位を判定する機能を搭載 ⇒ 起動時に 130 秒のタイマーを走らせて、通電時間の単位を判定します。判定結果を保存するため、新しい HDD を追加しない限り 再度判定処理は行いません。ようやく実装しました…。 アルゴリズムの詳細:CrystalDiskInfo -Feena- #2 […]