12/05/10 08:53:13.53 nwsBCnF50
まず、最初にポツンと存在するパラメータセットは他とは異なり、頭から 64MB の部分の絶対ブロック位置とそこより後のブロックサイズ。
要するに、HDD の全使用領域を、頭から 64MB のシステム領域とそれ以降の領域の2つの大きな区切りに分割していることになる。
それ以降のパラメータセットについては、64MB より後の領域をさらに小さな区切りに分割するためのパラメータセットとなっている。
ただ、これらのブロック位置については、64MB の位置を 0 とする相対位置である為、絶対位置はそれに 64MB を加えた位置となる。
各パラメータは、領域が重なったり間が空いたりすることなく連続しているので、前のパラメータの直後が次のパラメータの開始点となる。
そして、一番最後のパラメータセットが、問題となっている録画領域の開始相対ブロック位置とブロックサイズとなる。
ここで、あるパラメータセットの開始相対ブロック数とブロックサイズの和が次のパラメータセットの開始相対ブロック数と等しい。
さらに、一番最後のパラメータセットの開始相対ブロック数とブロックサイズの和が最初のパラメータセットのブロックサイズと等しい。
だから、ガイドを含む管理領域のブロックサイズは、最後のパラメータの開始相対ブロック位置を絶対ブロック位置に変換したものとなる。
すなわち、それは、最初のパラメータの絶対ブロック位置の値と最後のパラメータの相対ブロック位置の値の和ということ。
(システム領域サイズ 64MB は変更される可能性がある為、固定ではなく最初のパラメータの絶対ブロック位置を使用するのが安全)
このように、実際に使用されている値を参照して計算することによって、領域サイズの変更などがあっても対応できるというわけだ。
また、書き換えも、録画領域のブロックサイズの増加分と同じ値を最初のパラメータのブロックサイズに加える処理もした方が安全。
ちなみに、その書き換え箇所は、コピーもあり録画領域のブロックサイズの数よりも多く存在するので HxD の置換で対応すればいい。
ていうか、HDD の全使用領域(ブロックサイズ)からシステム領域サイズを引いた値でそれらの部分を書き換えて、その値からさらに最後の
パラメータの相対ブロック位置を引いた値で、例の部分(最後のパラメータのブロックサイズ)を書き換えるというのが正しい考え方。