1.49ミリ秒くらいです。トラック間の切り替え時間と記録面間の切り替え時間が、実際にどうなっているのかそれらを調べるのは私には難しくて出来ません。シーケンシャルに読むときの転送の途切れる時間は、HDDのメカが正常に動作している限り、工場での物理フォーマットによって設けられたトラック間のスキューで決まるようです。-引用なしパスワードDeviceIoControlをダンプするソース、ひよひよさんに直接メールしました。1)>で逆算できます。ありがとうございます。自分でも式を立ててみて理解しました。トラック間の切り替え時間と記録面間の切り替え時間が、実際にどうなっているのか>>それらを調べるのは私には難しくて出来ません。この点については、記録面が一つしかないHDDと、複数あるHDD(同じ機種の容量違い)でトラック間の移動時間に差があるかどうかで、同じ記録面上のトラックへの移動時間と、違う記録面上のトラックへの移動時間に差があるかどうか分かるのではないかと思ってたりします。言い換えれば、計測の際にどのぐらいの容量の領域を対象にしているかということなのですが(2.5インチの場合、最近の機種では、最外周で1トラックが1MB弱程度になります)。言い換えれば、計測の際にどのぐらいの容量の領域を対象にしているかということなのですが数千〜5千トラックの平均値を表示しています。表示の桁数に十分なほどは収束しないHDDがあります。メーカーや世代によって物理フォーマットが違うようで、ZBRのゾーン内の1トラックあたりのセクタ数が一定のHDDと、そうではないHDDがあるようです。一定ではない場合にも色々あって、スペアセクタのためにユーザーに見えるセクタ数が少ないトラックが一定間隔で混じっているものや、ゾーン内を細かく区切って書き込み周波数を変えている(=1トラックのセクタ数が異なる)ものがあるようです。HDDの物理フォーマットがどうなっているのか、これ以上の詳しい話は、HDDメーカーの出している技術資料をあたってください。-引用なしパスワード▼よかせさん:>数千〜5千トラックの平均値を表示しています。>しかし、表示の桁数に十分なほどは収束しないHDDがあります。回答ありがとうございます。>メーカーや世代によって物理フォーマットが違うようで、ZBRのゾーン内の1トラックあたりのセクタ数が一定のHDDと、そうではないHDDがあるようです。一定ではない場合にも色々あって、スペアセクタのためにユーザーに見えるセクタ数が少ないトラックが一定間隔で混じっているものや、ゾーン内を細かく区切って書き込み周波数を変えている(=1トラックのセクタ数が異なる)ものがあるようです。いうのもあるんですね。>HDDの物理フォーマットがどうなっているのか、これ以上の詳しい話は、HDDメーカーの出している技術資料をあたってください。これは愚痴ですが、実際のハードディスクに関しては、NDAを結んだ企業ならいざ知らず、一般の個人が読める資料は極めて限られているので、普通のユーザーが知っている知識は現在実際に使われている技術から激しく遅れているのではないかと思ってたりします。いずれにしても、お付き合いいただきありがとうございました。とあるスレにて↓としてお披露目してみました。>http://www.ne.jp/asahi/zero/eight/junk/HddRpmEst01.zip>一部問題があるものの、そこそこ良い感じの値が取れているようです。RAMを512MB加えて使っています。title="http://dynabook.com/pc/catalog/support/search/user【URL短縮沸:C-BOARD】N【URL短縮沸:C-BOARD】N</a>外付けHDDが2〜3台程度の場合は回転数を読んでくれる様ですですが、6台、7台などと増やしていくと、失敗ばかりになります。HDDのマニュアルには、内部フォーマットの説明が含まれています。検索してみてください。MBA3300xxのマニュアルがヒットすると思います。(東芝に事業譲渡されたので、いつまで富士通のWebサーバにファイルが残っているのか、わかりませんが。-引用なしパスワード▼眠り猫さん:>外付けHDDが2〜3台程度の場合は回転数を読んでくれる様です>ですが、6台、7台などと増やしていくと、失敗ばかりになります。>>これの原因は>・コンピュータ本体の能力ですか?>それとも>・USBやIEEE1394接続の場合は、接続台数などに何か制限が有るのでしょうか?とくに制限は設けていませんが、接続台数が増える(USB-HUBを経由する)とUSBの使える帯域が減ったり遅延が大きくなっているのかもしれません。このプログラムはタイミングにシビアなので、データ転送が少しでも遅れたり揺らいだりすると具合が悪くなります。さんの掲示板で私のプログラムのバグレポートを受けるのは良くないので、ここではなく2chの下記のスレッドのほうにお願いします。ttp://pc11.2ch.net/test/read.cgi/jisaku/1264431675/ただし、ここの掲示板から来たという話はしないでください。2chのスレッドも個人のソフトのためのバグレポート場所ではないので、そのことに気をつけて書き込みをしてください。2chのスレッドには、ごくたまにしか書き込みをしませんが、バグ修正の参考にはしています。-引用なしパスワード▼よかせさん:>とくに制限は設けていませんが、接続台数が増える(USB-HUBを経由する)とUSBの使える帯域が減ったり遅延が大きくなっているのかもしれません。このプログラムはタイミングにシビアなので、データ転送が少しでも遅れたり揺らいだりすると具合が悪くなります。経由するHUBの個数でも何か変わるかもしれないですね。>ひよひよさんの掲示板で私のプログラムのバグレポートを受けるのは良くないので、ここではなく2chの下記のスレッドのほうにお願いします。>ttp://pc11.2ch.net/test/read.cgi/jisaku/1264431675/了解。試してみてから書き込みます。HDDのマニュアルには、内部フォーマットの説明が含まれています。これは、わざわざありがとうございます。(SiI3114)RAID5で使用していますが、TestSilGetIdentifyは問題ないようです。型番指定だとうまくいきませんでした。3114CreateFile(\\.\tempBusSil3114)に失敗しました。(SiI3114)>>RAID5で使用していますが、TestSilGetIdentifyは問題ないようです。>ただ、型番指定だとうまくいきませんでした。ご連絡ありがとうございます。情報は取得できないようですね。(SiI3114)>>RAID5で使用していますが、TestSilGetIdentifyは問題ないようです。>ただ、型番指定だとうまくいきませんでした。3114>CreateFile(\\.\tempBusSil3114)に失敗しました。GetLastError=2時間が取れたので久々に弄くるモードです。知ってる範囲でいけそうな所から。確認してから再投稿予定ですが、おそらくSiIの場合、RAID5ドライバの場合「SI3114R51」のような感じになる為だと思います。順番が逆かもしれませんが、R5という記述は付いたハズです。現行仕様だと数字しか受け付けないので引数に3114R5と入れても確認不可です。手元にあるオンボードのSiI3114はBIOSでBASE/RAID切り替え可能なので確認してみます。-引用なしパスワード▼よかせさん:>ドライブが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はBIOSでBASE/RAID切り替え可能なので確認してみます。末尾に1が付くことに注意と変更することでRAID5ドライバ(Ver1.5.15)で3114と指定した際に表示される事を確認しました。4台ともIDENT取れてます。末尾に1が付くことに注意>と変更することでRAID5ドライバ(Ver1.5.15)で3114と指定した際に表示される事を確認しました。>4台ともIDENT取れてます。やれば色々見えるんですね。経由で取れない場合今のところ見えないんですよねぇ。-引用なしパスワード▼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をダンプするツールを作ったほうが良さそうですね。個人的な理由で不可能なので、すみません。末尾に1が付くことに注意>と変更することでRAID5ドライバ(Ver1.5.15)で3114と指定した際に表示される事を確認しました。>4台ともIDENT取れてます。すみません、あとで直します。ところで、\\.\ScsiXはCreateFileで受付けてもらえるのですが、\Device\Scsi\SI35121などは本来はCreateFileで受付けてもらえません。それをDefineDosDeviceで別名を付けてチェックをすり抜けてますが、ちょっと行儀が悪いような気がしますが、どうなのでしょう。直に3512等で指定できるようにしていたのですが、行儀が悪いのであれば、しかるべき手段で列挙して選択するようにすべきなのかもしれません。同じドライバを使うデバイスが2個以上あったとき、デバイスの名前の末尾の1が2、3と増えて行くと思うのですが、それも考慮しないといけませんね。各社とも、2枚挿しには対応しない旨の制限事項が書かれています。経由で取れない場合今のところ見えないんですよねぇ。STATUSを発行しているようですが、(そして、それは、たぶん、配下のどのPHYSICALDRIVEに対するものであっても、特定の1台に送信されてしまっている・・・みんなGOODを返すので確認できませんが。)RAIDドライバの場合は、パススルーではなく別の口を使っているような気がします。別口があったとしても、たぶんSTATUSを取得する口しか持っていないとは思いますが、ダメもとで調べてみたほうがよさそう。これもダンプのツールで拾いたいと思います。STATUSを発行しているようですが、>(そして、それは、たぶん、配下のどのPHYSICALDRIVEに対するものであっても、特定の1台に送信されてしまっている・・・みんなGOODを返すので確認できませんが。台に送信されるというのは他でもよく聞く謎仕様ですがなんでこんななんでしょうかねぇ。>RAIDドライバの場合は、パススルーではなく別の口を使っているような気がします。>別口があったとしても、たぶんSTATUSを取得する口しか持っていないとは思いますが、ダメもとで調べてみたほうがよさそう。