2010/8/22:本掲示板は閲覧専用です。データが一部破損しておりますがご了承ください。
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム  
2 / 332 ツリー ←次へ | 前へ→

SMART取得方法について よかせ 10/1/5(火) 18:22 [添付]

Re:SMART取得方法について ひよひよ 10/1/5(火) 23:27
Re:SMART取得方法について よかせ 10/1/6(水) 22:54 [添付]
Re:SMART取得方法について ひよひよ 10/1/6(水) 23:39
Re:SMART取得方法について よかせ 10/1/7(木) 0:55
Re:SMART取得方法について ひよひよ 10/1/7(木) 7:28
Re:SMART取得方法について 眠り猫 10/1/15(金) 23:23
Re:SMART取得方法について ひよひよ 10/1/16(土) 0:37
Re:SMART取得方法について 眠り猫 10/1/18(月) 0:43
Re:SMART取得方法について HGST使い 10/2/13(土) 2:56
Re:SMART取得方法について よかせ 10/2/15(月) 2:07
Re:SMART取得方法について HGST使い 10/3/3(水) 0:24

Re:SMART取得方法について
←back ↑menu ↑top forward→
 ひよひよ  - 10/1/5(火) 23:27 -

引用なし
パスワード
   ※皆様
よかせさんが作成されたサンプルアプリを試す際は、コマンドプロンプトを管理者権限で開いてから実行してください。(特に、Vista/7 ユーザー)非管理者権限では動作しません。また、現在の CrystalDiskInfo では見えないディスクが見えた!! という情報はぜひご投稿願います。

▼よかせさん:
>09 Power-On Hours
>C1 Load/Unload Cycle Count
>C2 Temperature
>これらの値が変化したのを確認しました。
おぉ、これは使えそうですねぇ〜

>>現在出張中なのですが、ノートPCには DDK/WDK をインストールしていないため、ビルドできませんでした。お手数ですが実行ファイルも添付いただけると助かります。
>>*他の方も試せますし。
>
>すみません、添付しました。
ご対応ありがとうございました。

>コマンドプロンプトから
>> ISPF-sample.exe 0
>のように、ディスクの番号を半角数字で引数に与えて実行すると、以下のように表示されます。
>
>Test for IOCTL_STORAGE_PREDICT_FAILURE
>
>CreateFile \\.\PhysicalDrive0 ... ok.
>DeviceIoControl(IOCTL_STORAGE_QUERY_PROPERTY) ... ok.
>VendorId = "WDC WD10"
>ProductId = "01FALS-00J7B1   "
ディスク名は VendorId と ProductId を連結すれば良さそうですね
.直接 IDENTIFY_DEVICE の結果が得られないので対応機能などがわからないのが残念なところではありますが。どっかから IDENTIFY_DEVICE の結果 512 バイトの配列を横取りできないものか。

うちの実行結果...
Test for IOCTL_STORAGE_PREDICT_FAILURE

CreateFile \\.\PhysicalDrive0 ... ok.
DeviceIoControl(IOCTL_STORAGE_QUERY_PROPERTY) ... ok.
VendorId = "INTEL SS"
ProductId = "DSA2MH080G1G    "
ProductRevision = "045C"
SerialNumber = "VCME48XXXXXXXXXXXX  "
DeviceIoControl(IOCTL_STORAGE_PREDICT_FAILURE) ... ok.
PredictFailure = 00000000
03 00 00 64 00 00 00 00 00 00 00 00
04 00 00 64 00 00 00 00 00 00 00 00
05 02 00 64 64 00 00 00 00 00 00 00
09 02 00 64 64 32 05 00 00 00 00 00
0c 02 00 64 64 c7 02 00 00 00 00 00
c0 02 00 64 64 b1 02 00 00 00 00 00
e8 03 00 63 63 00 00 00 00 00 00 00
e9 02 00 61 61 00 00 00 00 00 00 00
e1 00 00 c8 c8 f5 0c 01 00 00 00 00
e2 02 00 ff 00 ff ff ff ff 00 00 00
e3 02 00 00 00 ff ff ff ff ff ff 00
e4 02 00 00 00 ff ff ff ff 00 00 00

Re:SMART取得方法について
←back ↑menu ↑top forward→
 よかせ  - 10/1/6(水) 22:54 -

引用なし
パスワード

[添付]〜添付ファイル〜
・名前 : TestSilGetIdentify.zip
・サイズ : 14.2KB
   ▼ひよひよさん:
> 直接 IDENTIFY_DEVICE の結果が得られないので対応機能などがわからないのが残念なところではありますが。どっかから IDENTIFY_DEVICE の結果 512 バイトの配列を横取りできないものか。

SiliconImageのRAID管理ツールが発行しているDeviceIoControlをモニタして、
IDENTIFY_DEVICEを取得するカスタムのControlCodeを調べてみたところ、
ちょっと行儀の悪い方法ではありますが、添付ファイルのコードで取得できました。

ドライブが1台のみの場合にどうなるのか、3112(3512)以外のチップのときにどうなるのか、RAIDドライバのときにどうなるのかなど、試せていません。また、SiI以外のドライバにDeviceIoControlしてしまったときの安全性は、各ドライバの堅牢性次第だと思います。最悪BSODかも。

Re:SMART取得方法について
←back ↑menu ↑top forward→
 ひよひよ  - 10/1/6(水) 23:39 -

引用なし
パスワード
   ▼よかせさん:
>SiliconImageのRAID管理ツールが発行しているDeviceIoControlをモニタして、
>IDENTIFY_DEVICEを取得するカスタムのControlCodeを調べてみたところ、
>ちょっと行儀の悪い方法ではありますが、添付ファイルのコードで取得できました。
せっ、先生。
これは、モニター用フィルタドライバをかまして調べたということでしょうか?

>ドライブが1台のみの場合にどうなるのか、3112(3512)以外のチップのときにどうなるのか、RAIDドライバのときにどうなるのかなど、試せていません。また、SiI以外のドライバにDeviceIoControlしてしまったときの安全性は、各ドライバの堅牢性次第だと思います。最悪BSODかも。

新年早々神降臨の予感w
でも、出張中なので全然試せないんです。帰宅したら色々試してみますね。

SiliconImage 使いの皆さん。動作確認&人柱報告よろしくお願いします!!

Re:SMART取得方法について
←back ↑menu ↑top forward→
 よかせ  - 10/1/7(木) 0:55 -

引用なし
パスワード
   ▼ひよひよさん:
>▼よかせさん:
>>SiliconImageのRAID管理ツールが発行しているDeviceIoControlをモニタして、
>>IDENTIFY_DEVICEを取得するカスタムのControlCodeを調べてみたところ、
>>ちょっと行儀の悪い方法ではありますが、添付ファイルのコードで取得できました。
>せっ、先生。
>これは、モニター用フィルタドライバをかまして調べたということでしょうか?

Win32APIコールをフックして調べました。下調べはOSR OnlineさんのIrpTrackerでやりました。


さきほど書き忘れましたが、以下のような感じになります
シリアル番号を隠す機能は付けなかったので、手で消しました。

> TestSilGetIdentify.exe 3512
Port 0
000: 7a 42 ff 3f 37 c8 10 00 00 00 00 00 3f 00 00 00  zB..7...........
010: 00 00 00 00 20 20 20 20 20 57 44 2d 57 4d 41 54  .........WD.WMAT
020: 56                      00 00 ff ff 32 00 30 35  V       ....2.05
030: 2e 30 30 4b 30 35 57 44 43 20 57 44 31 30 30 31  .00K05WDC.WD1001
040: 46 41 4c 53 2d 30 30 4a 37 42 31 20 20 20 20 20  FALS.00J7B1.....
050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 10 80  ................
060: 00 00 00 2f 01 40 00 00 00 00 07 00 ff 3f 10 00  ................
070: 3f 00 10 fc fb 00 10 01 ff ff ff 0f 00 00 07 00  ................
080: 03 00 78 00 78 00 78 00 78 00 00 00 00 00 00 00  ..x.x.x.x.......
090: 00 00 00 00 00 00 1f 00 06 07 00 00 44 00 40 00  ............D...
0a0: fe 01 00 00 6b 74 61 7f 23 41 69 74 41 bc 23 41  ....kta..AitA..A
0b0: 7f 40 5e 00 5e 00 00 00 fe ff 00 00 fe 80 00 00  ................
0c0: 00 00 00 00 00 00 00 00 b0 6d 70 74 00 00 00 00  .........mpt....
0d0: 00 00 00 00 00 00 00 00 01 50 e0 4e 1e 57 19 f7  .........P.N.W..
0e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 40  ................
0f0: 10 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
100: 21 00 00 00 00 00 00 00 00 00 a0 16 00 00 00 00  ................
110: 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00  ................
120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
190: 00 00 00 00 00 00 00 00 00 00 00 00 37 30 00 00  ............70..
1a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
1b0: 00 00 00 00 00 00 00 00 00 00 00 00 0e 10 00 00  ................
1c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
1d0: 00 00 00 00 01 00 00 10 00 00 00 00 00 00 00 00  ................
1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
1f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a5 b9  ................
-----------------------------------------
Port 1
000: 7a 42 ff 3f 37 c8 10 00 00 00 00 00 3f 00 00 00  zB..7...........
010: 00 00 00 00 20 20 20 20 20 57 44 2d 57 4d 41 56  .........WD.WMAV
020: 55                      00 00 ff ff 32 00 30 31  U       ....2.01
030: 2e 30 30 41 30 31 57 44 43 20 57 44 31 35 45 41  .00A01WDC.WD15EA
040: 44 53 2d 30 30 50 38 42 30 20 20 20 20 20 20 20  DS.00P8B0.......
050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 10 80  ................
060: 00 00 00 2f 01 40 00 00 00 00 07 00 ff 3f 10 00  ................
070: 3f 00 10 fc fb 00 10 01 ff ff ff 0f 00 00 07 00  ................
080: 03 00 78 00 78 00 78 00 78 00 00 00 00 00 00 00  ..x.x.x.x.......
090: 00 00 00 00 00 00 1f 00 06 17 00 00 44 00 40 00  ............D...
0a0: fe 01 00 00 6b 74 61 7f 23 41 69 74 41 bc 23 41  ....kta..AitA..A
0b0: 7f 40 a5 00 a5 00 00 00 fe ff 00 00 fe 80 00 00  ................
0c0: 00 00 00 00 00 00 00 00 30 7b a8 ae 00 00 00 00  ........0.......
0d0: 00 00 00 00 00 00 00 00 01 50 e0 4e 0f 57 12 b7  .........P.N.W..
0e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 40  ................
0f0: 1c 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
100: 21 00 00 00 00 00 00 00 00 00 db 16 00 00 00 00  ................
110: 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00  ................
120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
190: 00 00 00 00 00 00 00 00 00 00 00 00 37 30 00 00  ............70..
1a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
1b0: 00 00 00 00 00 00 00 00 00 00 00 00 1e 10 00 00  ................
1c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
1d0: 00 00 00 00 01 00 00 10 00 00 00 00 00 00 00 00  ................
1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
1f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a5 3e  ................
-----------------------------------------

Re:SMART取得方法について
←back ↑menu ↑top forward→
 ひよひよ  - 10/1/7(木) 7:28 -

引用なし
パスワード
   ▼よかせさん:
>▼ひよひよさん:
>>▼よかせさん:
>>>SiliconImageのRAID管理ツールが発行しているDeviceIoControlをモニタして、
>>>IDENTIFY_DEVICEを取得するカスタムのControlCodeを調べてみたところ、
>>>ちょっと行儀の悪い方法ではありますが、添付ファイルのコードで取得できました。
>>せっ、先生。
>>これは、モニター用フィルタドライバをかまして調べたということでしょうか?
>
>Win32APIコールをフックして調べました。下調べはOSR OnlineさんのIrpTrackerでやりました。
なるほど。教えてくださりありがとうございます。勉強してみます。

>さきほど書き忘れましたが、以下のような感じになります
>シリアル番号を隠す機能は付けなかったので、手で消しました。
>
>> TestSilGetIdentify.exe 3512
>Port 0
>000: 7a 42 ff 3f 37 c8 10 00 00 00 00 00 3f 00 00 00  zB..7...........
今さらですが、ASCII 表示良いですね。

Re:SMART取得方法について
←back ↑menu ↑top forward→
 眠り猫  - 10/1/15(金) 23:23 -

引用なし
パスワード
   個人では、Windows ME(FMVM58073)にSATAのHDDを使いたいために
玄人志向のVIA VT6421 利用の I/F ”SAPARAID-PCI ”を使ってHDD一台をデータのバックアップ用に使っています。
現在はIDEは元から着いている I/F を利用して40MBに80MBを追加しています。
次回システムを停止させた時にでも複数のHDDを繋げて調べてみようと思います。

(単に箱を開けるのが面倒なだけ。とも言います。)

それで、質問が有ります。
http://www.kuroutoshikou.com/modules/display/?iid=95

http://www.kuroutoshikou.com/modules/display/?iid=96
など、ドライバなどをダウンロードできるように置いて有りますが
これらをご参考にして、各チップセットに対応できるようになりませんか?
<sage>

Re:SMART取得方法について
←back ↑menu ↑top forward→
 ひよひよ  - 10/1/16(土) 0:37 -

引用なし
パスワード
   ▼眠り猫さん:
>それで、質問が有ります。
>http://www.kuroutoshikou.com/modules/display/?iid=95
>や
>http://www.kuroutoshikou.com/modules/display/?iid=96
>など、ドライバなどをダウンロードできるように置いて有りますが
>これらをご参考にして、各チップセットに対応できるようになりませんか?
う〜ん、今の私の実力では難しいですね。
今後外付けカードへの対応を検討したいとは思いますが、あまり期待しないでください。対応している S.M.A.R.T. ユーティリティがほとんどない(私は知らない)ことから難易度が高いことは理解いただけるかと。

Re:SMART取得方法について
←back ↑menu ↑top forward→
 眠り猫  - 10/1/18(月) 0:43 -

引用なし
パスワード
   ▼ひよひよさん:
>う〜ん、今の私の実力では難しいですね。

わかりました。

>今後外付けカードへの対応を検討したいとは思いますが、あまり期待しないでください。

はい。開発に数年はかかると思いますから、待っています。
<sage>

Re:SMART取得方法について
←back ↑menu ↑top forward→
 HGST使い  - 10/2/13(土) 2:56 -

引用なし
パスワード
   ▼よかせさん:
>ドライブが1台のみの場合にどうなるのか、3112(3512)以外のチップのときにどうなるのか、RAIDドライバのときにどうなるのかなど、試せていません。また、SiI以外のドライバにDeviceIoControlしてしまったときの安全性は、各ドライバの堅牢性次第だと思います。最悪BSODかも。

SiI3114/SiI3132にて試しました。
SiI3114は素直に4つ表示されましたが、
SiI3132に関しては結果ですが、2個目のディスクがそのままでは認識されないという状況になりました。
原因としてですが、おそらくPMP対応かと思われます。
PMP対応のためにsid.portの0〜14は物理的なポート1個目(Channel0,Target0〜14)用に予約済みのようです。
# PMPは規格仕様上は15台まで接続出来ます。全然売ってませんけど・・・
## 1Channel par 15Targetの根拠っぽいのはあるんですが、現在確認中。
で、そのために2個目のポートであるCh1,Tg0はsid.port=15となるようです。
SiI3132の場合、2ポートなので合計30個の予約枠がありますが、適当にPortをぶん回すと29で止まるようです。
現行、SiI3124がPMP対応していて4ポートなので最大0〜59まで読むような感じ(失敗したら抜ける)か機種判定でまわしても良いのかもしれないです。
# ドライバのバグが心配ですが・・・

検証用にSiI3124買うかなぁ・・・
# 5Port PMP(一部RAID機能有り)を4個所有してるのでSiIだけで20個超えられるそうでウハウハ?

RAID BIOS&Driver時の検証はこれからします・・・

Re:SMART取得方法について
←back ↑menu ↑top forward→
 よかせ  - 10/2/15(月) 2:07 -

引用なし
パスワード
   ▼HGST使いさん:
>SiI3114は素直に4つ表示されましたが、
>SiI3132に関しては結果ですが、2個目のディスクがそのままでは認識されないという状況になりました。
>原因としてですが、おそらくPMP対応かと思われます。
>PMP対応のためにsid.portの0〜14は物理的なポート1個目(Channel0,Target0〜14)用に予約済みのようです。

う、、、すみません、ポートというのは早合点でした。

>SiI3132の場合、2ポートなので合計30個の予約枠がありますが、適当にPortをぶん回すと29で止まるようです。
>現行、SiI3124がPMP対応していて4ポートなので最大0〜59まで読むような感じ(失敗したら抜ける)か機種判定でまわしても良いのかもしれないです。

SiliconImageのツールが接続をツリー状に表示しているのだから、
SiliconImageのカスタムのControlCodeの送受信をダンプのどこかに、
その表示のために使われた情報が含まれているはず、なんですよね。

1つだけ見ても何がなんだか わからないバイナリ列でも、
異なるチップや構成でのバイナリ列を見比べると、
法則性が何か見えてくるかもしれません。

カスタムのControlCodeに限定してDeviceIoControlをダンプする
ツールを作ったほうが良さそうですね。作ります。

本当は私のほうで様々なボードを買い集められればいいのですが、
個人的な理由で不可能なので、すみません。
<sage>

Re:SMART取得方法について
←back ↑menu ↑top forward→
 HGST使い  - 10/3/3(水) 0:24 -

引用なし
パスワード
   >▼HGST使いさん:
>>現行、SiI3124がPMP対応していて4ポートなので最大0〜59まで読むような感じ(失敗したら抜ける)か機種判定でまわしても良いのかもしれないです。

SiI3124でもまわしてみましたが予測通り0〜59まで回りました。
使ったカードは
4e Express R5
http://www.mathey.jp/4eExpressR5.html
というあまり普通じゃないSiI3124ですが、ドライバは純正の物が使用できます。
BIOSが古めで簡単には更新出来なさそうなのでちょっと心が惹かれた人でも購入は要注意かも。
# 多分PCI-E・PCI-Xブリッジなんて怪しい物が間に刺さってるのが原因でしょうが。

▼よかせさん:
>1つだけ見ても何がなんだか わからないバイナリ列でも、
>異なるチップや構成でのバイナリ列を見比べると、
>法則性が何か見えてくるかもしれません。

実際の所SiI3XXXコントローラの場合WMIからコントローラーの値の一部を取得できまして、そこの値が根拠になっています。
DeviceIoControlでも取れるとは思いますが。
参考までに値の一部を張っておきます。
難点はソートされてて生の順番が不明な点ですか。
構造体じゃない上に複数のパラメータが合成されてるかも。

SiI3114(RAID5)
> Active = TRUE;
> ChannelCount = 4;
> ChipRevision = 2;
> ChipType = 12564;(0x3114)
> ControllerId = 2329423876;(0x8AD83004)
> DriverType = 1;
> IrqNumber = 17;
> PciBusNum = 1;
> PciDevNum = 0;
> PCIStatus = 1;(0x1)
> TargetsPerChannel = 1;

SiI3132(BASEのはずだが混在してるので怪しい)
> Active = TRUE;
> ChannelCount = 2;
> ChipRevision = 1;
> ChipType = 12594;(0x3132)
> ControllerId = 2330214404;(0x8AE44004)
> DriverType = 1;
> IrqNumber = 16;
> PciBusNum = 3;
> PciDevNum = 0;
> PCIStatus = 132096;(0x20400)
> TargetsPerChannel = 15;

SiI3124(ドライバは純正のRAID5だが怪しいカードなので少し怪しい)
> Active = TRUE;
> ChannelCount = 4;
> ChipRevision = 2;
> ChipType = 12580;(0x3124)
> ControllerId = 2329686020;(0x8ADC3004)
> DriverType = 1;
> IrqNumber = 19;
> PciBusNum = 5;
> PciDevNum = 0;
> PCIStatus = 776;
> TargetsPerChannel = 15;

nForceは最新版ドライバだとAAM関連やリンク速度関連も有ったりしてなかなか楽しそうです<WMIから眺める光景
ただ、思うように落とし込めるのかとかバージョン依存とか仕様周りが手探りなので時間が掛かってます。
まぁ、作り手が外部から触ることなんて想定してないから当然でしょうけど・・・

>カスタムのControlCodeに限定してDeviceIoControlをダンプする
>ツールを作ったほうが良さそうですね。作ります。
こちらは後ほど試してお知らせします。

2 / 332 ツリー ←次へ | 前へ→
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム  
ページ:  ┃  記事番号:   
98074
(SS)C-BOARD v3.8(とほほ改ver2.1) is Free