|
▼HGST使い?さん:
衝撃のレポート誠にありがとうございます。
CrystalDiskInfo はレイアウトの関係で最大 8 台までの検出に制限していますが、最大値は簡単に変更できるのでとりあえず 16 台まで "テキストコピー" できるようにしたものをこの投稿に添付します(実行ファイルのみ)。GUI は簡単にはいかないので、最大 8 台しか見えませんが。
※CAtaSmart.h の static const int MAX_DRIVE = 8; を static const int MAX_DRIVE = 16; に変更しただけです。
HGST使い?さんの環境で 9 台以上見えるようであれば GUI 側の改良も検討してみたいと思います。メニューから切り替えるぐらいしか思いつきませんが。
お手数ですが、実行結果をご報告頂けると幸いです。(スクリーンショットもあるとうれしいです)
AllScan=1 ならあと 1 台くらい見えるかもしれません。
※SiI 3114 も 1 台目だけは見える報告があるので。
なお、外付けコントローラの配下に接続された HDD は多くの場合 1 台目しか見えないようです。(2 台目以降は、1 台目とまったく同じ情報が取得できる場合が多いですし、それをそのまま表示するソフトもあります。∴温度やシリアルナンバーなども同じ) また、容量もなぜか 9.1GB となる場合が多いので正直お手上げ状態です。(今は、WMI の結果で補完しています。)
デバイスドライバに対して専用かつ適切なメッセージを送ればちゃんとした値がもらえるんだろうなぁ〜(OS は正しい値を取得しているわけですし)とは思うのですが、方法は全くわかっていません。
割り込み禁止にした上で、全てを無視して容赦なく I/O ポートに ATA コマンドを投げる方法もあるかもしれませんが…。一応 WinRing0 があるので試すこと自体は出来るのですがそこまではやっていません。まぁ、何も応答がないか、クラッシュして終了な気もしますが。
># ドライブレターはダメみたいですが。
># http://msdn2.microsoft.com/en-us/library/ms809032.aspx 辺りが関係するのかしら、ソース見て色々確認してみます。
ドライブレターについては、本当に困っています。パーティション管理ソフトや Windows のディスクの管理などはちゃんとパーティションとドライブレターをマッピングできているので、かならず方法はあるはずなのですが。
ShowDriveLetterEx=1 にすると常に WMI によるドライブレターマッピングを行います。この方法はだいたいうまくいくようなのですが、フロッピーディスクへのアクセスが伴うことが難点です。フロッピーが接続された環境では、シリアルナンバーを用いたマッピングを行います。こちらの方法は、単純な環境では動作するのですが、ダイナミックディスクなどには全くの無力です。
|
|