2007年01月19日

READ BUFFER CAPACITY

ドライブが持つバッファの全容量とその時点での空き容量を調べるには、 READ BUFFER CAPACITY コマンドを使います。
READ BUFFER CAPACITY の使い方については、cdrteach や cdm-fix のソースコードなどがこの記事よりもためになります。
READ BUFFER CAPACITY コマンドの CDB は次のとおりです。

BYTE\bit 7 6 5 4 3 2 1 0
0Operation Code = 0x5C
1予約予約BLOCK
2予約
3予約
4予約
5予約
6予約
7
(MSB)
Allocation Length
(LSB)
8
9Control

BLOCK が 0 であれば、容量はバイト単位で得られます。 1 ならば、ブロック単位で得られますが、 こちらをサポートしていないドライブもあります。

Allocation Length には用意したデータバッファの容量をセットします。 12 以上であればきちんと結果が返ってきますが、 それ以下(0を含む)でもエラーにはなりません。


READ BUFFER CAPACITY で得られるデータは、BLOCK が 0 と 1 とで異なります。 BLOCK = 0 では次のとおりです。

BYTE\bit 7 6 5 4 3 2 1 0
0
(MSB)
Data Length (=10)
(LSB)
1
2予約
3予約
4
(MSB)
Length of the Buffer
 
[bytes]
(LSB)
5
6
7
8
(MSB)
Blank Length of Buffer
 
[bytes]
(LSB)
9
10
11

Length of the Buffer がドライブの持つバッファの全容量
Blank Length of Buffer が未使用量=使用可能な量
です。


BLOCK = 1 は使ったことがありませんので、表だけ載せておきます。

BYTE\bit 7 6 5 4 3 2 1 0
0
(MSB)
Data Length (=10)
(LSB)
1
2予約
3予約Block = 1
4予約
5予約
6予約
7予約
8
(MSB)
Available Length of Buffer
 
[bytes]
(LSB)
9
10
11

posted by 七癖 at 19:23| Comment(0) | TrackBack(0) | Multimedia Commands | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。