報告板2010/8/22:本掲示板は閲覧専用です。データが一部破損しておりますがご了承ください。結果が得られないので対応機能などがわからないのが残念なところではありますが。バイトの配列を横取りできないものか。SiliconImageのRAID管理ツールが発行しているDeviceIoControlをモニタして、IDENTIFY_DEVICEを取得するカスタムのControlCodeを調べてみたところ、ちょっと行儀の悪い方法ではありますが、添付ファイルのコードで取得できました。ドライブが1台のみの場合にどうなるのか、3112(3512)以外のチップのときにどうなるのか、RAIDドライバのときにどうなるのかなど、試せていません。SiI以外のドライバにDeviceIoControlしてしまったときの安全性は、各ドライバの堅牢性次第だと思います。-引用なしパスワード▼よかせさん:>SiliconImageのRAID管理ツールが発行しているDeviceIoControlをモニタして、>IDENTIFY_DEVICEを取得するカスタムのControlCodeを調べてみたところ、>ちょっと行儀の悪い方法ではありますが、添付ファイルのコードで取得できました。これは、モニター用フィルタドライバをかまして調べたということでしょうか?>ドライブが1台のみの場合にどうなるのか、3112(3512)以外のチップのときにどうなるのか、RAIDドライバのときにどうなるのかなど、試せていません。SiI以外のドライバにDeviceIoControlしてしまったときの安全性は、各ドライバの堅牢性次第だと思います。新年早々神降臨の予感wでも、出張中なので全然試せないんです。帰宅したら色々試してみますね。-引用なしパスワード▼ひよひよさん:>▼よかせさん:>>SiliconImageのRAID管理ツールが発行しているDeviceIoControlをモニタして、>>IDENTIFY_DEVICEを取得するカスタムのControlCodeを調べてみたところ、>>ちょっと行儀の悪い方法ではありますが、添付ファイルのコードで取得できました。>これは、モニター用フィルタドライバをかまして調べたということでしょうか?Win32APIコールをフックして調べました。OnlineさんのIrpTrackerでやりました。さきほど書き忘れましたが、以下のような感じになりますシリアル番号を隠す機能は付けなかったので、手で消しました。-引用なしパスワード▼よかせさん:>▼ひよひよさん:>>▼よかせさん:>>>SiliconImageのRAID管理ツールが発行しているDeviceIoControlをモニタして、>>>IDENTIFY_DEVICEを取得するカスタムのControlCodeを調べてみたところ、>>>ちょっと行儀の悪い方法ではありますが、添付ファイルのコードで取得できました。>>これは、モニター用フィルタドライバをかまして調べたということでしょうか?>>Win32APIコールをフックして調べました。OnlineさんのIrpTrackerでやりました。教えてくださりありがとうございます。>さきほど書き忘れましたが、以下のような感じになります>シリアル番号を隠す機能は付けなかったので、手で消しました。”を使ってHDD一台をデータのバックアップ用に使っています。利用して40MBに80MBを追加しています。次回システムを停止させた時にでも複数のHDDを繋げて調べてみようと思います。(単に箱を開けるのが面倒なだけ。)それで、質問が有ります。-引用なしパスワード▼眠り猫さん:>それで、質問が有ります。>http://www.kuroutoshikou.com/modules/display/?iid=95>や>http://www.kuroutoshikou.com/modules/display/?iid=96>など、ドライバなどをダウンロードできるように置いて有りますが>これらをご参考にして、各チップセットに対応できるようになりませんか?う〜ん、今の私の実力では難しいですね。今後外付けカードへの対応を検討したいとは思いますが、あまり期待しないでください。ユーティリティがほとんどない(私は知らない)ことから難易度が高いことは理解いただけるかと。-引用なしパスワード▼ひよひよさん:>う〜ん、今の私の実力では難しいですね。>今後外付けカードへの対応を検討したいとは思いますが、あまり期待しないでください。開発に数年はかかると思いますから、待っています。-引用なしパスワード▼よかせさん:>ドライブが1台のみの場合にどうなるのか、3112(3512)以外のチップのときにどうなるのか、RAIDドライバのときにどうなるのかなど、試せていません。SiI以外のドライバにDeviceIoControlしてしまったときの安全性は、各ドライバの堅牢性次第だと思います。SiI3114/SiI3132にて試しました。SiI3114は素直に4つ表示されましたが、SiI3132に関しては結果ですが、2個目のディスクがそのままでは認識されないという状況になりました。原因としてですが、おそらくPMP対応かと思われます。PMP対応のためにsid.portの0〜14は物理的なポート1個目(Channel0,Target0〜14)用に予約済みのようです。PMPは規格仕様上は15台まで接続出来ます。15Targetの根拠っぽいのはあるんですが、現在確認中。そのために2個目のポートであるCh1,Tg0はsid.port=15となるようです。SiI3132の場合、2ポートなので合計30個の予約枠がありますが、適当にPortをぶん回すと29で止まるようです。現行、SiI3124がPMP対応していて4ポートなので最大0〜59まで読むような感じ(失敗したら抜ける)か機種判定でまわしても良いのかもしれないです。-引用なしパスワード▼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の送受信をダンプのどこかに、その表示のために使われた情報が含まれているはず、なんですよね。法則性が何か見えてくるかもしれません。カスタムのControlCodeに限定してDeviceIoControlをダンプするツールを作ったほうが良さそうですね。個人的な理由で不可能なので、すみません。-引用なしパスワード>▼HGST使いさん:>>現行、SiI3124がPMP対応していて4ポートなので最大0〜59まで読むような感じ(失敗したら抜ける)か機種判定でまわしても良いのかもしれないです。SiI3124でもまわしてみましたが予測通り0〜59まで回りました。R5http://www.mathey.jp/4eExpressR5.htmlというあまり普通じゃないSiI3124ですが、ドライバは純正の物が使用できます。BIOSが古めで簡単には更新出来なさそうなのでちょっと心が惹かれた人でも購入は要注意かも。PCI-E・PCI-Xブリッジなんて怪しい物が間に刺さってるのが原因でしょうが。わからないバイナリ列でも、>異なるチップや構成でのバイナリ列を見比べると、>法則性が何か見えてくるかもしれません。実際の所SiI3XXXコントローラの場合WMIからコントローラーの値の一部を取得できまして、そこの値が根拠になっています。DeviceIoControlでも取れるとは思いますが。参考までに値の一部を張っておきます。難点はソートされてて生の順番が不明な点ですか。構造体じゃない上に複数のパラメータが合成されてるかも。15;nForceは最新版ドライバだとAAM関連やリンク速度関連も有ったりしてなかなか楽しそうです<WMIから眺める光景ただ、思うように落とし込めるのかとかバージョン依存とか仕様周りが手探りなので時間が掛かってます。作り手が外部から触ることなんて想定してないから当然でしょうけど・・・>カスタムのControlCodeに限定してDeviceIoControlをダンプする>ツールを作ったほうが良さそうですね。こちらは後ほど試してお知らせします。