SYNCHRONIZE CACHE コマンドの CDB は次のとおりです。
BYTE\bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |||
0 | Operation Code = 0x35 | ||||||||||
1 | 予約 | IMMED | 廃止 | ||||||||
2 |
|
||||||||||
3 | |||||||||||
4 | |||||||||||
5 | |||||||||||
6 | 予約 | ||||||||||
7 |
|
||||||||||
8 | |||||||||||
9 | Control |
IMMED (Immediate) を 0 に設定すると、このコマンドが完了するまで 帰ってきません。1 に設定すると取り合えず処理が手元に戻るので、 コマンドの終了は CDB の値を確認しつつ行うのですが、 使ったことがありません。
"論理ブロックアドレス" と "ブロック数" は無視されます。
書き込みの最後には、必ずこの SYNCHRONIZE CACHE コマンドを送信するようにしましょう。
書き込みの途中にエラーで終了する場合にも、すぐ終わるのではなくこのコマンドを通しておけば、 ディスクを一応閉じてくれます。でないと、書き込んであるのに書き込んでいない、 あるいはその逆と誤認されるディスクが出来ます。 (RWメディアでそうなった場合には、強制的にフォーマットする アプリケーションを使いましょう。)