GetTapePosition 関数 (winbase.h)

GetTapePosition 関数は、テープの現在のアドレスを論理ブロックまたは絶対ブロックで取得します。

構文

DWORD GetTapePosition(
  [in]  HANDLE  hDevice,
  [in]  DWORD   dwPositionType,
  [out] LPDWORD lpdwPartition,
  [out] LPDWORD lpdwOffsetLow,
  [out] LPDWORD lpdwOffsetHigh
);

パラメーター

[in] hDevice

テープ位置を取得するデバイスを処理します。 このハンドルは、 CreateFile を使用して作成されます。

[in] dwPositionType

取得するアドレスの種類。 このパラメーターには、次の値のいずれかを指定できます。

意味
TAPE_ABSOLUTE_POSITION
0L
lpdwOffsetLow パラメーターと lpdwOffsetHigh パラメーターは、デバイス固有のブロック アドレスを受け取ります。 dwPartition パラメーターは 0 を受け取ります。
TAPE_LOGICAL_POSITION
1L
lpdwOffsetLow パラメーターと lpdwOffsetHigh パラメーターは、論理ブロック アドレスを受け取ります。 dwPartition パラメーターは論理テープ・パーティションを受け取ります。

[out] lpdwPartition

現在のテープ・パーティションの番号を受け取る変数へのポインター。 パーティションには論理的に 1 から n の番号が付けられます。ここで、1 はテープの最初のパーティションで、n は最後のパーティションです。 デバイス固有のブロック アドレスが取得されたとき、またはデバイスが 1 つのパーティションのみをサポートしている場合、このパラメーターは 0 を受け取ります。

[out] lpdwOffsetLow

現在のテープ位置の下位ビットを受け取る変数へのポインター。

[out] lpdwOffsetHigh

現在のテープ位置の上位ビットを受け取る変数へのポインター。 高位ビットが不要な場合、このパラメーターは NULL にすることができます。

戻り値

関数が成功した場合、戻り値は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
操作中に filemark に達しました。
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
メディアの書き込みが禁止されています。

注釈

論理ブロック アドレスは、パーティションに対する相対アドレスです。 各パーティションの最初の論理ブロック アドレスは 0 です。

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

要件

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

関連項目

CreateFile

GetTapeParameters

SetTapePosition