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件の返信

  1. 2008年3月22日

    […] 通電時間の単位を判定する機能を搭載 ⇒ 起動時に 130 秒のタイマーを走らせて、通電時間の単位を判定します。判定結果を保存するため、新しい HDD を追加しない限り 再度判定処理は行いません。ようやく実装しました…。 アルゴリズムの詳細:CrystalDiskInfo -Feena- #2 […]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です