しかしながら、この VERIFY(10) コマンドは、私の使い方が間違っているためか、 上手く働かない場合が多いです。 一応書いておきますが、あまり信用しないでください。 読み出してみてかつデータの確認をするのであれば、READ(10) や、READ CD コマンドなどを 使ったほうが確実です。
VERIFY(10) コマンドの CDB は次のとおりです。
BYTE\bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |||
0 | Operation Code = 0x2F | ||||||||||
1 | 予約 | DPO =0 | 予約 | BytChk =0 | 廃止 | ||||||
2 |
|
||||||||||
3 | |||||||||||
4 | |||||||||||
5 | |||||||||||
6 | G3tout | 予約 | |||||||||
7 |
|
||||||||||
8 | |||||||||||
9 | Control |
Logical Block Address がベリファイを開始する位置です。
Number of Blocks がベリファイを行うセクタ数です。 0 だとベリファイを行いません。
G3tout が 0 の場合、処理が終わるまで戻りません(Group 2 Timeouts)。 1 はストリーミング方式で使用します(Group 3 Timeouts)。 実は、タイムアウト関係はよく理解していません。
VERIFY(10) コマンドのエラーは Read/Write Error Recovery Mode Page で決定されます。