========================================================================== DevTest -- Device Benchmark Test Program for Windows 2000/XP Version 1.03a edition #01 (C) Copyright 2002-2004, TARO ==========================================================================  DevTest はストレージ・デバイスの情報を表示し、性能を調べるためのWindows 2000/XP用ベンチマーク テスト プログラムです。  Windows 2000/XPで認識できるハードディスクやリムーバブルディスク、CD/ DVD-ROMドライブの性能を調べることができます。  書き込みテストについてはファイルシステムを破壊するために対応していません が、ソースコードを公開していますので開発環境と知識があれば書き込みテストの 対応も可能です。  また、ソースはLinux にも対応しておりコンパイルすることでLinux 用DevTestを 作成できます。ただし、Linux 用は作者の環境で動いただけで動作保証はできませ んし使い方の説明等は特にしませんので、各自で対応してください。 ※ Windows 95/98/Meには対応していません。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §1-1 ファイル構成 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= devtest.exe 実行プログラム devtest.txt 説明(本ファイル) devtest-1.03a01-src.zip ソースコード(アーカイブ) -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §1-2 実行環境 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= OS: Windows 2000 Windows XP  ※ Windows 95/98/Meには対応していません。  ※ Windows 2000/XP では Administrator(管理者)権限を持つユーザーで実行   してください。  DevTest は Windows 2000/XP用のコンソール用プログラムです。コマンド・プロ ンプトからDevTestとタイプして実行・使用してください。  DevTest を実行するユーザーは、ドライブにアクセスする権限が必要となります。 管理者(Adminisrator)権限のあるユーザーでなければ実行できない場合がありま す。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §1-3 使用、転載、再配付について -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  このプログラムの著作権は作者が保持しています。  以下の条件に従って自由に使用してください。 1. 著作権表示を変更しないこと。 2. このプログラムを使用したことによって生じた損害はまったく保証し ない。 3. 作者はこのプログラムに不備があっても、それを訂正する義務を負わ ない。 4. 収録されているすべてのファイルを一括して配付すること。  感想・障害報告等、作者への連絡は、 e-mail taro.kobayashi@nifty.com まで、願いします。  電子メールでのお問い合わせは返事が遅れたり、あるいは返信のメールが行かな いこともありますので、予めご了承ください。  転載、再配付については作者の許諾を得る必要はありません。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §2-1 DevTest の使い方 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  コマンドプロンプトからDevTest をパラメータなしで実行すると次のように、 ドライブレターに割り当てられているディスクドライブの一覧を表示します。  ハードディスクに複数のパーティションを作成している場合、複数のドライブ レターで同じディスクドライブ情報が表示されます。 実行例:devtest ------------------------------------------------------------------------------ C: 0-0-0 Maxtor 6Y120L0 YAR4 - FIX 122.9G D: 0-0-0 Maxtor 6Y120L0 YAR4 - FIX 122.9G E: 0-0-0 Maxtor 6Y120L0 YAR4 - FIX 122.9G F: 0-0-0 Maxtor 6Y120L0 YAR4 - FIX 122.9G G: 0-0-0 Maxtor 6Y120L0 YAR4 - FIX 122.9G Q: 0-3-0 PIONEER DVD-ROM DVD-303 1.06 - Direct access device RMB 4.1G ------------------------------------------------------------------------------  Cドライブのパーティション情報を表示したい場合には、コマンドラインに 「devtest c: -p」と入力します。FAT/NTFS/UDFフォーマットについて詳細な情報を 表示したい場合は「devtest c: -p -v」と入力します。  先頭にアスタリスク「*」 があるパーティションはアクティブパーティションです。 実行例:devtest c: -p ------------------------------------------------------------------------------ c: 0-0-0 Maxtor 6Y120L0 YAR4 - FIX 122.9G IBM HARD-DISK FORMAT ( 512) 240121728 sectors 122,942,324,736B No [Start CHS- End CHS] StartSec SectorNum HH:Partition Type SIZE --- --------------------- ---------- ---------- --:-------------------- ------- *1 [000 01 01-104 FE 3F] 63 4192902 0B:FAT32 2.1G 2 [105 00 01-3FF FE 3F] 4192965 235898460 0F:Extended LBA 120.7G e1 [105 01 01-3FF FE 3F] 4193028 40965687 07:NTFS 20.9G e2 [3FF 01 01-3FF FE 3F] 45158778 40965687 07:NTFS 20.9G e3 [3FF 01 01-3FF FE 3F] 86124528 24579387 07:NTFS 12.5G e4 [3FF 01 01-3FF FE 3F] 110703978 61432497 07:NTFS 31.4G ------------------------------------------------------------------------------ 実行例:devtest c: -p -v ------------------------------------------------------------------------------ c: 0-0-0 Maxtor 6Y120L0 YAR4 - FIX 122.9G IBM HARD-DISK FORMAT ( 512) 240121728 sectors 122,942,324,736B No [Start CHS- End CHS] StartSec SectorNum HH:Partition Type SIZE --- --------------------- ---------- ---------- --:-------------------- ------- *1 [000 01 01-104 FE 3F] 63 4192902 0B:FAT32 2.1G Jump Code EB 58 90 OEM ID MSWIN4.1 Sector Size 512 Sector per Cluster 4 (4 bytes) Reserve Sector 34 FAT Number 2 Sector Volume 0 (0 bytes) Media Descriptor F8H Sector per Track 63 Head Number 255 Hidden Sector 63 Long Sector Volume 4192902 (2,146,765,824 bytes) Big FAT Sector 8159 Ext Flags 0000H FS Version 0000H Root Cluster 2 FS Information 1 Backup Boot Sector 6 Drive No (primary) 0 Boot Signature 29H Serial No 3F21-9ACD Volume Label SYSBOOT File System FAT32 ------------------------------------------------------------------------------  ※ 表示する内容はドライブやパーティションによって異なります。  Cドライブのデバイス情報を表示したい場合には、コマンドラインに 「devtest c: -d」と入力します。 実行例:devtest c: -d ------------------------------------------------------------------------------ c: 0-0-0 Maxtor 6Y120L0 YAR4 - FIX 122.9G Disk Capabilities Maximum Transfer Length 131072 Maximum Physical Pages 32 Supported Asynchronous Events 0 Alignment Mask 1 Tagged Queuing 0 Adapter Scans Down 0 Adapter Uses PIO 0 Disk Drive Geometry Media Type:0CH Fixed Cylinder/Track/Sector:Size 14946/255/63 : 512 (122,935,034,880) Test Unit Ready OK modeSense: pagecode 08H size: 10 - Cache Control Parameter Write Cache Enable 1 Multiplication Factor 0 Read Cache Disable 0 Demand Read Retention Priority 0 Write Retention Priority 0 Disable Pre-fetch Transfer Length 0 Minimum Pre-fetch 0 Maximum Pre-fetch 0 Maximum Pre-fetch Ceiling 0 ------------------------------------------------------------------------------  ※ 表示される情報の種類や内容はドライブによって異なります。ドライブによっては    数百行以上の情報を表示します。  Cドライブのベンチマークテストを実行したい場合には、コマンドラインに 「devtest c: --benchmark」と入力します。コマンドテストとシークテストも合 わせて実行したいときは、「devtest c: --benchmark -c -s」とします。 実行例:devtest c: --benchmark -c -s ------------------------------------------------------------------------------ c: 0-0-0 Maxtor 6Y120L0 YAR4 - FIX 122.9G TEST MODE : TIME(ms) REMARK --------------------------------- : --------- ------------------- Test Unit Ready command : 0.00ms No Motion Seek command : 0.12ms (use Read command) Average latency Time : 0.12ms TEST MODE : TIME(ms) REMARK --------------------------------- : --------- ------------------- Sequential Seek (seek sector 63) : 0.54ms (use Read Command) Random Seek : 16.30ms (use Read Command) TEST MODE / TRACK SIZE : Speed kB/s ( Speed Mbps) ---------------- -------- ------- : ------------- --------------- Sequential Read / START 512B : 5356.3 kB/s ( 42.85 Mbps) Sequential Read / START 16384B : 59315.5 kB/s ( 474.52 Mbps) Sequential Read / START 65536B : 59419.3 kB/s ( 475.35 Mbps) ---------------- -------- ------- : ------------- --------------- Sequential Read / END 512B : 5309.2 kB/s ( 42.47 Mbps) Sequential Read / END 16384B : 33990.9 kB/s ( 271.92 Mbps) Sequential Read / END 65536B : 33958.1 kB/s ( 271.66 Mbps) ---------------- -------- ------- : ------------- --------------- Sequential Read /AVERAGE 512B : 5332.7 kB/s ( 42.66 Mbps) Sequential Read /AVERAGE 16384B : 46653.2 kB/s ( 373.22 Mbps) Sequential Read /AVERAGE 65536B : 46688.7 kB/s ( 373.50 Mbps) ---------------- -------- ------- : ------------- --------------- Random Read / 512B : 31.0 kB/s ( 0.24 Mbps) Random Read / 16384B : 950.6 kB/s ( 7.60 Mbps) Random Read / 65536B : 3346.3 kB/s ( 26.77 Mbps) ------------------------------------------------------------------------------  DevTestはCD/DVD-ROMドライブの速度を計測することもできます。--cdspeedオプ ションまたは--dvdspeed オプションを指定するとそれぞれCD-ROM/DVD-ROMで何倍 速にあたるか表示します。 実行例:devtest Q: --benchmark -c -s --cdspeed ------------------------------------------------------------------------------ Q: 0-1-0 HL-DT-STDVDRAM GSA-4040BA109 - RMB 4.4G TEST MODE : TIME(ms) REMARK --------------------------------- : --------- ------------------- Test Unit Ready command : 5.64ms No Motion Seek command : 17.05ms Average latency Time : 63.82ms TEST MODE : TIME(ms) REMARK --------------------------------- : --------- ------------------- Sequential Seek (seek sector 32) : 15.70ms Random Seek : 94.24ms TEST MODE / TRACK SIZE : Speed kB/s ( Speed Mbps) CD/DVD ---------------- -------- ------- : ------------- --------------- ------ Sequential Read / START 2048B : 1694.3 kB/s ( 13.55 Mbps) x1.2 Sequential Read / START 16384B : 2774.3 kB/s ( 22.19 Mbps) x2.0 Sequential Read / START 65536B : 2774.3 kB/s ( 22.19 Mbps) x2.0 ---------------- -------- ------- : ------------- --------------- ------ Sequential Read / END 2048B : 1665.8 kB/s ( 13.32 Mbps) x1.2 Sequential Read / END 16384B : 6453.1 kB/s ( 51.62 Mbps) x4.6 Sequential Read / END 65536B : 6442.2 kB/s ( 51.53 Mbps) x4.6 ---------------- -------- ------- : ------------- --------------- ------ Sequential Read /AVERAGE 2048B : 1680.1 kB/s ( 13.44 Mbps) x1.2 Sequential Read /AVERAGE 16384B : 4613.7 kB/s ( 36.91 Mbps) x3.3 Sequential Read /AVERAGE 65536B : 4608.2 kB/s ( 36.86 Mbps) x3.3 ---------------- -------- ------- : ------------- --------------- ------ Random Read / 2048B : 13.1 kB/s ( 0.10 Mbps) x0.0 Random Read / 16384B : 103.2 kB/s ( 0.82 Mbps) x0.0 Random Read / 65536B : 389.1 kB/s ( 3.11 Mbps) x0.2 ------------------------------------------------------------------------------  --cpuUsageオプションを指定するとベンチマークテスト実行時のCPU 使用率を表 示します。また、--cpuUsageオプションと--cdSpeed オプション/--dvdSpeedオプ ションは同時に指定できます。 実行例:devtest c: --benchmark --cpuUsage ------------------------------------------------------------------------------ c: 0-0-0 Maxtor 6Y120L0 YAR4 - FIX 122.9G TEST MODE / TRACK SIZE : Speed kB/s ( Speed Mbps) CPU % ---------------- -------- ------- : ------------- --------------- ------ Sequential Read / START 512B : 5131.9 kB/s ( 41.05 Mbps) 23.4% Sequential Read / START 16384B : 53641.2 kB/s ( 429.12 Mbps) 7.8% Sequential Read / START 65536B : 58895.0 kB/s ( 471.16 Mbps) 1.6% ---------------- -------- ------- : ------------- --------------- ------ Sequential Read / END 512B : 4940.2 kB/s ( 39.52 Mbps) 25.5% Sequential Read / END 16384B : 33657.9 kB/s ( 269.26 Mbps) 8.3% Sequential Read / END 65536B : 33827.1 kB/s ( 270.61 Mbps) 1.6% ---------------- -------- ------- : ------------- --------------- ------ Sequential Read /AVERAGE 512B : 5036.1 kB/s ( 40.28 Mbps) Sequential Read /AVERAGE 16384B : 43649.5 kB/s ( 349.19 Mbps) Sequential Read /AVERAGE 65536B : 46361.0 kB/s ( 370.88 Mbps) ---------------- -------- ------- : ------------- --------------- ------ Random Read / 512B : 28.6 kB/s ( 0.22 Mbps) 0.0% Random Read / 16384B : 949.9 kB/s ( 7.59 Mbps) 0.5% Random Read / 65536B : 3429.7 kB/s ( 27.43 Mbps) 0.5% ------------------------------------------------------------------------------ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §2-1 DevTest コマンドライン書式 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 【書式-1】デバイス情報表示 devtest [<デバイス名>] [<オプション>] 【書式-2】ベンチマークテスト devtest <デバイス名> --benchmark [<オプション>] 【書式-3】ダンプ表示 devtest <デバイス名> --dump <アドレス> [<オプション>] 【書式-4】表面検査 devtest <デバイス名> --surfscan [<アドレス>] [<オプション>] <デバイス名> <文字>: … ドライブ・レター ?: を指定した場合は A〜Zドライブを検索 disk[<番号>] … 物理ディスクドライブ 番号を省略した場合は物理ディスクドライブを検索 cdrom[<番号>] … CD/DVDドライブ 番号を省略した場合はCD/DVDドライブを検索 scsi[<番号>] … SCSIデバイス 番号を省略した場合はSCSIデバイスを検索 <コマンド> --benchmark … ベンチマークテスト --dump <アドレス> … ダンプ 指定アドレス(セクタ単位)の内容を表示する --readBlock <アドレス> … ブロックリード  指定アドレスの内容を読み取りする  内容は画面(標準出力)に出力する。ファイルに保存 したい場合は--fileオプションを使用  ブロック数(セクタ数)は--count オプションで指定 --surfscan [<アドレス>] … 表面検査  指定のアドレスからディスクを検査して不良がないか 調べる。アドレスの指定がない場合は先頭アドレスから 検査する <オプション> -? または -H … 説明を表示 -c … コマンドテスト ベンチマークで有効 -d … デバイスの詳細情報を表示 デバイス情報表示で有効 -p … パーティション情報を表示 デバイス情報表示で有効 -v … パーティション詳細情報を表示 デバイス情報表示で有効 -s … シークテスト ベンチマークで有効 --210 … 表示単位2の10乗 K/M/Gの表示単位を2の10乗(1024)で行う --103 … 表示単位10の3乗(デフォルト) k/M/Gの表示単位を10の3乗(1000)で行う --blockSize <サイズ> … デバイスのブロック(セクタ)サイズを指定 Linux用オプション --blockTest <サイズ> … 転送ブロックサイズをバイト単位で指定する ベンチマークで有効  この指定がない場合、ブロックサイスは 16384バイトとなる。 --cdspeed … ベンチマーク結果としてCD-ROMの倍速速度を表示 ベンチマークで有効 --cpuUsage [] … CPU使用率を表示 ベンチマーク、表明検査で有効 mode self プログラムのCPU使用率(デフォルト) all トータルCPU使用率(Windows用 sys システムモードCPU使用率(Linux用 user ユーザモードCPU使用率(Linux用 --count … ブロック カウント ブロックリードで有効 読み取りブロック(セクタ)数を指定 max を指定すると全ブロックを読み取りする --dvdspeed … ベンチマーク結果としてDVD-ROMの倍速速度を表示 ベンチマークで有効 --file … ファイル名 ブロックリードで有効 --readBlockコマンドでの読み取り内容をファイルに 保存する --maxBufferSize <サイズ> … 最大バッファサイズをバイト単位で指定 ベンチマーク、表面検査で有効  この指定がない場合、最大バッファサイズは 65536 バイトとなる。 --retry … 再試行回数(リトライ) 表面検査で有効  表面検査でエラーが見つかった場合、再試行を 繰り返す回数。この指定がないときは3回。 --seekSector <セクタ数> … シークテストのトラックあたりのセクタ数を指定 ベンチマークで有効 --testTime <秒数> … 計測時間を秒数で指定 ベンチマークで有効  この指定がない場合、計測時間は3秒となる。 --trackZone <パーセンテージ> … 転送テストのトラック位置をパーセンテージで指定 ベンチマークで有効 --verify … Verifyコマンドを使用 表面検査で有効  Readコマンドの代わりにVerifyコマンドを使用する --winfile … Windows のファイルシステム経由でデバイスにアセス ベンチマークで有効 【解説】  コマンドやオプションのアルファベット大文字/小文字は区別しません。  DevTest には次の4つの機能があります。 ・デバイス情報表示 ・ベンチマークテスト(--benchmark) ・ダンプ表示(--dump) ・表面検査(--surfscan) ・ブロックリード(--readBlock)  ベンチマークテストとダンプ表示は特定の1台のデバイスに対してのみ実行可能 ですが、デバイス情報表示は、<デバイス名>の指定方法によりデバイスを検索して 複数にデバイスに対して実行できます(Windows版のみ)。 例) devtest C: … Cドライブを指定 devtest ?: … A〜Zドライブの検索 devtest disk0 … 物理ドライブ0番を指定 devtest disk … 物理ドライブを検索 devtest cdrom0 … CD/DVDドライブ0番を指定 devtest cdrom … CD/DVDドライブを検索 devtest scsi0 … SCSIデバイス0番を指定 devtest scsi … SCSIデバイスを検索  <デバイス名>を省略した場合は、?: を指定したのと同じでA〜Zドライブを検索 してデバイス情報を表示します。  <デバイス名>にscsi/cdromを指定した場合、パーティション情報の表示や、 ベンチマークテストは実行できないことがあります。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §2-3 ベンチマークテストについて -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  DevTestのベンチマークテストには、次の7つの項目があります。  テスト 1〜3 は -c オプションを、テスト 4〜5 は -s オプションを指定した 場合に実行されます。 1) Test Unit Ready command … Test Unit Ready コマンドの実行時間 2) No Motion Seek command … 論理ブロック0 へのシークの繰り返し実行時間 3) Average latency Time … 平均回転待ち時間 4) Sequential Seek … 連続した論理ブロックへのシークの実行時間 5) Random Seek … ランダムな論理ブロックへのシークの実行時間 6) Sequential Read … 連続した論理ブロックのリードの実行時間 7) Random Read … ランダムな論理ブロックへのリードの実行時間  テスト 1〜5 はドライブによってはコマンドをサポートしていないために実行で きなかったり、実行できても本来の動作をしないために不正確なテスト結果を表示 する場合があります。テスト2,4,5はSeekコマンド、テスト3はVerifyコマンドを 使用しますが、これをサポートしていない場合はReadコマンドで代用します。その 場合、計測結果には「use Read Command」と表示されます。コマンドをサポート していないのに実行できる場合には1ms以下になる等、不正確な結果を表示する場 合があります。  テスト 4のシーケンシャルシークは、本来なら1トラック分だけ移動しなければ ならないのですが、シークコマンドは論理ブロックアドレスで指定するため1トラッ クあたりのセクタ数を知る必要があります。しかし、本来の1トラックあたりのセ クタ数はアプリケーションからはわからないので、DevTest では Windowsのドライ バが返すドライブ・ジオメトリ(IOCTL_DISK_GET_DRIVE_GEOMETRY )から移動セク タ数を決めています。ドライブ・ジオメトリが取得できない場合には32セクタとし ます。なお、シークテストでのトラックあたりのセクタ数は --seekSector オプショ ンで指定可能です。  テスト6 Sequential Read は、先頭トラック(START)と最終トラック(END)の 2箇所で計測し、加えて平均値(AVERAGE )も結果として表示します。先頭/最終 トラックは論理ブロックアドレスの大小で決めていますので、実際のディスク上の 外周にあたるか内周にあたるかはドライブによって異なります。最終トラックにつ いてはドライブ容量に換算して5%内側の論理ブロックアドレスから計測します。 計測トラック位置は --trackZoneオプションを指定してユーザーが指定することも 可能です。--trackZone オプションはトラック位置をパーテセンテージで指定しま す。  テスト 6〜7 はセクターサイズ単位、 16384バイト単位、最大バッファサイズ 65536 バイト単位の3回、3秒間に何バイト転送できたか調べてデータ転送速度を 求めています。セクターサイズはハードディスクの場合は 512バイト、CD/DVDでは 2048バイトです。したがって、ハードディスクでは 512/16834/65536バイト単位 での転送速度を計測します。2回目の転送単位 16384バイトは--blockTest オプショ ン、3回目の転送単位 65536バイトは--maxBufferSize オプションで変更できます。  デバイスによっては大きな転送サイズを指定すると、エラーが発生して計測でき ないことがあります。その場合は、--maxBufferSize オプションで最大バッファサ イズを制限してください。または、--winfileオプョンを指定すると、このエラーを 回避できることがあります。  --cdspeed オプションまたは--dvdspeedオプションを指定するとテスト6〜7で計 測した転送速度がそれぞれCD-ROM/DVD-ROM で何倍速にあたるか表示します。CD-ROM は等速を150kバイト/秒、DVD-ROMは等速を1385kバイト/秒として計算します。  --cpuUsageオプションを指定すると、ベンチマーク実行中のCPU 使用率を表示し ます。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §2-4 表面検査について -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  --surfscanを指定した場合の表面検査は、ディスクの全領域を読み出してエラー がないか調べます。  標準ではReadコマンドを使いますが、--verifyオプションを指定するとVerifyコ マンドを使用して検査します。ただ、Verifyコマンドはデバイスによってはサポー トしていないことがあります。特に、IDE ハードディスクには指定しても動作しない はずです。  表面検査は64Kバイトのブロック毎に読み出しを行いますが、エラーが発生した 場合は最小ブロック単位(1セクタ分)で再試行します。  再試行する回数は--retryオプションで指定できます。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §3-1 注意・制限事項 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  ベンチマーク・テストの転送速度の計測は、読み込みのみ対応しています。書き 込みテストは実行するとファイルシステムを破壊するためにわざと使えないように しています。どうしても書き込みテストを実行したい方は、ソースコードを公開し ていますので、各自で対応してください。  古いフロッピィディスクやMO/PD/LS-120、USB1.1接続のドライブ等に対してベ ンチマークテストは実行しないでください。あまり遅いドライブを対象にベンチマー クテストを実行するとシステムが不安定になる場合があります。  デバイス情報として表示するの内容は ドライブ・ジオメトリ VPD(Vital Product Data) モード・パラメータ Read/Write Error Recovery Disconnect/Reconnect Drive Parameter Flexible Disk Mode Cache Control Periphery Device Control Mode Media Type Notch/Partition CD Device Parameter Power Condition MM Capabilities & Mechanical Status ディフェクト・リスト Configuration Profile List Feature Core Feature 等 DVD Structure Physical Format Information DVD-RAM Medium Status DVD-RAM Spare Area Information Pre-recording Information in Lead-in Unique Disc Identifier 等、 です。当然ですが、デバイス側が対応していない場合は表示できません。  未対応のコマンドを使用するとブルーバック画面となりOSごと落ちてしまう出来 の悪いドライバも中にはあるようです。そのような場合は、ドライバを更新するか、 実行をあきらめてください。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §3-2 ソースコードについて -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  DevTest は Visual C++ .NET 7.1 で開発しました。  ソースコードをコンパイルするにはDDK (Device driver Development Kit)に 含まれるヘッダファイル ntddcdrm.h ntdddisk.h ntddscsi.h ntddstor.h 等が必要です。  ソリュージョンdevtest.sln を開いてからビルドしてください。  ソースコードはLinux 用と共通になっています。Linux 環境でコンパイルする場合 にはMakefileを利用してください。  コンパイルおよび動作確認は、gcc 2.95.3と、Linux kernel 2.4.23 で行いまし た。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §3-3 Linux版について -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  Linux 版にいては最低限動く機能だけ移植しました。  Linux版にはデバイスをコマンドラインに必ずデバイスファイルを指定します。 デバイスを自動的に検索する機能はありませんが、コマンドラインには複数のデバ イスを指定できるのでシェルのパス名展開を使ってください。  例) devtest /dev/sg0 -d devtest /dev/hda -d devtest /dev/sr0 --benchmark  DevTest は基本的にはSCSIデバイス用ですのでsgデバイス(/dev/sg0等)を対象 に動作しますが、IDEハードディスク/ATAPI CD-ROM (/dev/hda等)でも動作しま す。  ただ、ベンチマーク テストについてはLinux のキャッシュが働くため、純粋に ドライブ性能を測るには役に立たないかもしれません。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §3-4 参考資料 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  DevTest を制作にするにあたって次の資料/書籍/ソフトウェアを参考にました。 参考にしたプログラム/資料 asbench (作者:橘家鶴蔵 氏) CQ出版社 SCSI-2詳細解説 (著者:菅谷誠一 氏) Linux UDF Filesystem Driver UDF & ECMA 167 資料 http://www.osta.org/ http://www.ecma.ch/ SCSI Primary Commands - 3 (SPC-3) T10/1416-D SCSI Block Commands - 2 (SBC-2) T10/1417-D Multimedia Commands - 4 (MMC-4) T10/1545-D -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §3-5 変更履歴 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ■ ver.1.01a #01 ・リリース ■ ver.1.02a #01 ・CHSパラメータの表示方法を変更 ・コマンド/オプション・パラメータの指定方法を変更 ・表面検査を追加。コマンドラインに--surfscan --retry --verify を追加。 ・Linux対応。--blockSizeオプションを追加 ・Linux ext2パーティションの情報表示を追加 ・K/M/Gの表示単位の指定オプション--210 --103を追加。 ■ ver.1.02a #02 ・拡張パーティションの情報表示の不都合を修正 ・Linuxブロック・デバイスのサポート方式を変更 ■ ver.1.02a #03 ・Get Configuration(46H)コマンド、DVD Structure(ADH)コマンドでの情報表 示を追加 ・CSV形式での結果を出力する --csvresult オプション追加 ・CPU使用率を表示する --cpuUsafe オプション追加 ・情報表示の誤りを修正 ■ ver.1.03a #01 ・--randomReadWriteオプション追加(一般公開用は使用不可) ランダム リード/ライト ベンチマーク ・--randomRWTimeオプション追加 ランダム リード/ライト ベンチマーク用のテスト時間 ・--blockcopyコマンド追加(一般公開用は使用不可) デバイス間でセクタ単位でコピーする ・--writeBlockコマンドを追加(一般公開用は使用不可) 任意のセクタにデータを書き込み ・--readBlockコマンド追加 任意のセクタのデータを読み取り ・--count,--file,--zeroFillオプション追加 --readBlock,--writeBlock用オプション ・DVD+R Double Layer用Feature Code(003B), Profile Number(002B)の表示 をポート