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
取得するアドレスの種類。 このパラメーターには、次の値のいずれかを指定できます。
[out] lpdwPartition
現在のテープ・パーティションの番号を受け取る変数へのポインター。 パーティションには論理的に 1 から n の番号が付けられます。ここで、1 はテープの最初のパーティションで、n は最後のパーティションです。 デバイス固有のブロック アドレスが取得されたとき、またはデバイスが 1 つのパーティションのみをサポートしている場合、このパラメーターは 0 を受け取ります。
[out] lpdwOffsetLow
現在のテープ位置の下位ビットを受け取る変数へのポインター。
[out] lpdwOffsetHigh
現在のテープ位置の上位ビットを受け取る変数へのポインター。 高位ビットが不要な場合、このパラメーターは NULL にすることができます。
戻り値
関数が成功した場合、戻り値はNO_ERROR。
関数が失敗した場合は、次のいずれかのエラー コードを返すことができます。
エラー コード | 説明 |
---|---|
|
中の先頭マーカーが失敗する前にデータにアクセスしようとしました。 |
|
バスでリセット条件が検出されました。 |
|
テープがロードされているときにパーティション情報が見つかりませんでした。 |
|
操作中にテープの終了マーカーに達しました。 |
|
操作中に filemark に達しました。 |
|
マルチボリューム・パーティション内の新規テープでは、ブロック・サイズが正しくありません。 |
|
ドライブに含まれているテープが交換または取り外されました。 |
|
操作中にデータの終了マーカーに到達しました。 |
|
ドライブにメディアがありません。 |
|
テープ ドライバーは、要求された関数をサポートしていません。 |
|
テープをパーティション分割できませんでした。 |
|
操作中に設定マークに達しました。 |
|
取り出し機構をロックできませんでした。 |
|
テープのアンロードに失敗しました。 |
|
メディアの書き込みが禁止されています。 |
注釈
論理ブロック アドレスは、パーティションに対する相対アドレスです。 各パーティションの最初の論理ブロック アドレスは 0 です。
GetTapeParameters 関数を呼び出して、テープ ドライブとメディアの状態、機能、容量に関する情報を取得します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winbase.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |