次の方法で共有


TapeClassLogicalBlockToPhysicalBlock 関数 (minitape.h)

TapeClassLogicalBlockToPhysicalBlock ルーチンは、疑似ブロック アドレスを物理ブロック アドレスに変換します。 このルーチンは SCSI-1 デバイス用です。

構文

TAPE_PHYS_POSITION TapeClassLogicalBlockToPhysicalBlock(
  [in] UCHAR   DensityCode,
  [in] ULONG   LogicalBlockAddress,
  [in] ULONG   BlockLength,
  [in] BOOLEAN FromBOT
);

パラメーター

[in] DensityCode

テープ メディア密度コードを指定します。 このルーチンは、QIC_24、QIC_120、QIC_150、QIC_525、QIC_1000、QIC_2GB、QIC_1350、およびQIC_2100の密度コードを持つテープをサポートします。

[in] LogicalBlockAddress

擬似的ブロック アドレスを指定します。

[in] BlockLength

論理ブロック サイズをバイト単位で指定します。

[in] FromBOT

TRUE は、物理ブロックの計算をテープの先頭から開始し、物理デバイス ヘッダーを考慮する必要があることを示します。 FALSE は、テープに 2 つのパーティションがあり、ブロック アドレスがディレクトリ パーティション上にあるため、物理デバイス ヘッダーを計算に組み込む必要がないことを示します。

戻り値

TapeClassLogicalBlockToPhysicalBlock は、物理ブロック アドレスを含む構造体を返します。

typedef 構造体 _TAPE_PHYS_POSITION {

ULONG SeekBlockAddress;

ULONG SpaceBlockCount;

} TAPE_PHYS_POSITION、PTAPE_PHYS_POSITION;

備考

テープ ミニクラス ドライバー TapeClassLogicalBlockToPhysicalBlock を呼び出して、論理ブロック アドレスをアプリケーションからテープ デバイスの物理ブロック アドレスに変換します。 SCSI-2 以降のドライバー TapeClassLogicalBlockToPhysicalBlock は必要ありません。SCSI-2 以降の標準に準拠するデバイスは論理ブロック アドレス指定をサポートするためです。

このルーチンによって返される物理ブロック アドレスにテープを配置するには、テープ ミニクラス ドライバーは、2 つの SCSI コマンドを発行します。2 つの SCSI コマンド: SeekBlockAddressにテープを配置する LOCATE コマンド、および Space コマンドを使用して、テープを SpaceBlockCount 進めます。 テープ上の疑似ブロックが物理ブロックより小さい場合は、SpaceBlockCount 値が必要です。その場合、論理ブロック境界が物理ブロック境界と一致しない可能性があります。

テープ ミニクラス ドライバーがサポートされていないテープ密度コードを使用してこのルーチンを呼び出した場合、TapeClassLogicalBlockToPhysicalBlock は変換を実行しません。 SeekBlockAddress で論理ブロック アドレス 返し、SpaceBlockCount 0 を返します。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー minitape.h (Minitape.h を含む)
ライブラリ Tape.lib

関連項目

tapeClassPhysicalBlockToLogicalBlock