WriteTapemark

機能
テープにファイル・セット・ファイルマークを書き込む
Declare Function WriteTapemark Lib "kernel32.dll"  _
(ByVal hDevice As Long, ByVal dwTapemarkType As Long, _
ByVal dwTapemarkCount As Long, ByVal bimmediate As Long) As Long
Declare Function WriteTapemark Lib "kernel32.dll"  _
(ByVal hDevice As Integer, ByVal dwTapemarkType As Integer, _
ByVal dwTapemarkCount As Integer, ByVal bimmediate As Integer) As Integer

DWORD WriteTapemark(
HANDLE hDevice,
DWORD dwTapemarkType,
DWORD dwTapemarkCount,
BOOL bImmediate
);
引数
hDevice

テープデバイスのハンドル(CreateFile()関数の戻り値)
dwTapemarkType
書き込むテープマークのタイプを指定する定数の一つ
dwTapemarkCount
書き込むテープマークの数を指定
0のとき   操作が終了するまで関数は帰らない
1のとき   操作が終了する前に帰る
戻り値
正常終了のとき                     NO_ERROR(=0)
エラーのとき                       エラーを示す定数
備考
ファイルマーク、セットマーク、短いファイルマーク、および
長いファイルマークは、テープの線状構造を示すための特殊な要素。
これらのテープマークにより、テープパーティションが細分化される。
これらのマークはユーザーデータを格納しない。
ファイルマーク・・・・・・・・・・・一般的なマーク
セットマーク・・・・・・・・・・・・階層構造を使えるマーク
短いファイルマーク・・・・・・・・・短い消去ギャップが含まれている
                                     この短い消去ギャップは、パーティションの先頭、
                                     または先行する長いファイルマークから書き込み操作が
                                     実行されない限り上書きされることはない
長いファイルマーク・・・・・・・・・長い消去ギャップが含まれている
                                     この長い消去ギャップでは、ファイルマークの先頭に
                                     テープを配置することができる
                                     ファイルマークと消去ギャップは上書きすることができる
dwTapemarkTypeの定数
Const TAPE_FILEMARKS                                'ファイルマークをdwTapemarkCountで指定した数だけ書く
Const TAPE_LONG_FILEMARKS                           '長いファイルマークをdwTapemarkCountで指定した数だけ書く
Const TAPE_SETMARKS                                 'セットマークをdwTapemarkCountで指定した数だけ書く
Const TAPE_SHORT_FILEMARKS                          '短いファイルマークをdwTapemarkCountで指定した数だけ書く


Const ERROR_BEGINNING_OF_MEDIA = 1102&              '「メディアの先頭」マーカーより前にあるデータにアクセスしようとした
Const ERROR_BUS_RESET = 1111&                       'バスがリセット状態になっている
Const ERROR_END_OF_MEDIA = 1100&                    '操作中に「テープの終端」マーカーに到達した
Const ERROR_FILEMARK_DETECTED = 1101&               '操作中にファイルマークに到達した
Const ERROR_SETMARK_DETECTED = 1103&                '操作中にセットマークに到達した
Const ERROR_NO_DATA_DETECTED = 1104&                '操作中に「データの終端」マーカーに到達した
Const ERROR_PARTITION_FAILURE = 1105&               'テープ内にパーティションを作成できなかった
Const ERROR_INVALID_BLOCK_LENGTH = 1106&            'マルチボリュームパーティションの新しいテープの
                                                     'ブロックサイズが間違っている
Const ERROR_DEVICE_NOT_PARTITIONED = 1107&          'テープ内にパーティションが見つからなかった
Const ERROR_MEDIA_CHANGED = 1110&                   'ドライブ内のテープが取り替えられた or 取り出された
Const ERROR_NO_MEDIA_IN_DRIVE = 1112&               'メディアがセットされていない
Const ERROR_NOT_SUPPORTED = 50&                     '関数がサポートされていない
Const ERROR_UNABLE_TO_LOCK_MEDIA = 1108&            'テープをロックできなかった
Const ERROR_UNABLE_TO_UNLOAD_MEDIA = 1109&          'テープのアンロードに失敗した
Const ERROR_WRITE_PROTECT = 19&                     'メディアが書込み禁止状態