SetTapePosition 関数 (winbase.h)

SetTapePosition 関数は、指定したデバイス上のテープ位置を設定します。

構文

DWORD SetTapePosition(
  [in] HANDLE hDevice,
  [in] DWORD  dwPositionMethod,
  [in] DWORD  dwPartition,
  [in] DWORD  dwOffsetLow,
  [in] DWORD  dwOffsetHigh,
  [in] BOOL   bImmediate
);

パラメーター

[in] hDevice

テープ位置を設定するデバイスへのハンドル。 このハンドルは、 CreateFile 関数を使用して作成されます。

[in] dwPositionMethod

実行する配置の種類。 このパラメーターには次のいずれかの値を指定する必要があります。

意味
TAPE_ABSOLUTE_BLOCK
1L
dwOffsetLow パラメーターと dwOffsetHigh パラメーターで指定されたデバイス固有のブロック アドレスにテープを移動します。 dwPartition パラメーターは無視されます。
TAPE_LOGICAL_BLOCK
2L
dwPartition で指定されたパーティション内の dwOffsetLow および dwOffsetHigh で指定されたブロック アドレスにテープを移動します。
TAPE_REWIND
0L
テープを現在のパーティションの先頭に移動します。 dwPartitiondwOffsetLowdwOffsetHigh の各パラメーターは無視されます。
TAPE_SPACE_END_OF_DATA
4L
dwPartition で指定されたパーティション上のデータの末尾にテープを移動します。
TAPE_SPACE_FILEMARKS
6L
現在のパーティション内の dwOffsetLow および dwOffsetHigh で指定されたファイル マークの数をテープを前方 (または後方) に移動します。 dwPartition パラメーターは無視されます。
TAPE_SPACE_RELATIVE_BLOCKS
5L
現在のパーティション内の dwOffsetLow および dwOffsetHigh で指定されたブロック数をテープを前方 (または後方) に移動します。 dwPartition パラメーターは無視されます。
TAPE_SPACE_SEQUENTIAL_FMKS
7L
現在のパーティション内の n 個のファイル マークが最初に出現する位置にテープを前方 (または後方) に移動します。ここで、n は dwOffsetLowdwOffsetHigh で指定された番号です。 dwPartition パラメーターは無視されます。
TAPE_SPACE_SEQUENTIAL_SMKS
9L
現在のパーティション内の n 個の setmark が最初に出現するようにテープを前方 (または後方) に移動します。ここで、n は dwOffsetLowdwOffsetHigh で指定された番号です。 dwPartition パラメーターは無視されます。
TAPE_SPACE_SETMARKS
8L
現在のパーティションの dwOffsetLow および dwOffsetHigh で指定された設定マークの数をテープを前方 (または後方) に移動します。 dwPartition パラメーターは無視されます。

[in] dwPartition

内に配置するパーティション。 dwPartition が 0 の場合、現在のパーティションが使用されます。 パーティションには論理的に 1 から n までの番号が付けられます。ここで、1 はテープの最初のパーティションで、n は最後のパーティションです。

[in] dwOffsetLow

dwPositionMethod パラメーターで指定された位置操作のブロック アドレスまたはカウントの下位ビット。

[in] dwOffsetHigh

dwPositionMethod パラメーターで指定された位置操作のブロック アドレスまたはカウントの上位ビット。 上位ビットが不要な場合、このパラメーターは 0 である必要があります。

[in] bImmediate

移動操作が開始されるとすぐに を返すかどうかを示します。 このパラメーターが TRUE の場合、関数は直ちにを返します。 FALSE の場合、関数は移動操作が完了するまで戻りません。

戻り値

関数が成功した場合、戻り値はNO_ERROR。

関数が失敗した場合は、次のいずれかのエラー コードを返すことができます。

エラー 説明
ERROR_BEGINNING_OF_MEDIA
1102L
中から始まるマーカーの前にデータにアクセスしようとしましたが失敗しました。
ERROR_BUS_RESET
1111L
バスでリセット条件が検出されました。
ERROR_DEVICE_NOT_PARTITIONED
1107L
テープがロードされているときにパーティション情報が見つかりませんでした。
ERROR_END_OF_MEDIA
1100L
操作中にテープの終わりマーカーに達しました。
ERROR_FILEMARK_DETECTED
1101L
操作中にファイルマークに達しました。
ERROR_INVALID_BLOCK_LENGTH
1106L
マルチボリューム・パーティション内の新規テープでは、ブロック・サイズが正しくありません。
ERROR_MEDIA_CHANGED
1110L
ドライブにあったテープが交換または取り外されました。
ERROR_NO_DATA_DETECTED
1104L
操作中にデータの終了マーカーに達しました。
ERROR_NO_MEDIA_IN_DRIVE
1112L
ドライブにメディアがありません。
ERROR_NOT_SUPPORTED
50L
テープ ドライバーは、要求された関数をサポートしていません。
ERROR_PARTITION_FAILURE
1105L
テープをパーティション分割できませんでした。
ERROR_SETMARK_DETECTED
1103L
操作中に設定マークに達しました。
ERROR_UNABLE_TO_LOCK_MEDIA
1108L
排出機構をロックできませんでした。
ERROR_UNABLE_TO_UNLOAD_MEDIA
1109L
テープをアンロードできませんでした。
ERROR_WRITE_PROTECT
19L
メディアの書き込みが禁止されています。

注釈

dwOffsetLow および dwOffsetHigh で指定されたオフセットで、移動するブロック、ファイルマーク、または設定マークの数が指定されている場合、正のオフセットを指定すると、テープは最後のブロック、ファイルマーク、または設定マークの末尾に移動します。 負のオフセットを指定すると、テープは最後のブロック、ファイル マーク、または設定マークの先頭に後方に移動します。 オフセットが 0 の場合、テープは移動しません。

テープ ドライブとメディアの状態、機能、容量に関する情報を取得するには、 GetTapeParameters 関数を呼び出します。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー winbase.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

CreateFile

GetTapeParameters

GetTapePosition