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
実行する配置の種類。 このパラメーターには次のいずれかの値を指定する必要があります。
[in] dwPartition
内に配置するパーティション。 dwPartition が 0 の場合、現在のパーティションが使用されます。 パーティションには論理的に 1 から n までの番号が付けられます。ここで、1 はテープの最初のパーティションで、n は最後のパーティションです。
[in] dwOffsetLow
dwPositionMethod パラメーターで指定された位置操作のブロック アドレスまたはカウントの下位ビット。
[in] dwOffsetHigh
dwPositionMethod パラメーターで指定された位置操作のブロック アドレスまたはカウントの上位ビット。 上位ビットが不要な場合、このパラメーターは 0 である必要があります。
[in] bImmediate
移動操作が開始されるとすぐに を返すかどうかを示します。 このパラメーターが TRUE の場合、関数は直ちにを返します。 FALSE の場合、関数は移動操作が完了するまで戻りません。
戻り値
関数が成功した場合、戻り値はNO_ERROR。
関数が失敗した場合は、次のいずれかのエラー コードを返すことができます。
エラー | 説明 |
---|---|
|
中から始まるマーカーの前にデータにアクセスしようとしましたが失敗しました。 |
|
バスでリセット条件が検出されました。 |
|
テープがロードされているときにパーティション情報が見つかりませんでした。 |
|
操作中にテープの終わりマーカーに達しました。 |
|
操作中にファイルマークに達しました。 |
|
マルチボリューム・パーティション内の新規テープでは、ブロック・サイズが正しくありません。 |
|
ドライブにあったテープが交換または取り外されました。 |
|
操作中にデータの終了マーカーに達しました。 |
|
ドライブにメディアがありません。 |
|
テープ ドライバーは、要求された関数をサポートしていません。 |
|
テープをパーティション分割できませんでした。 |
|
操作中に設定マークに達しました。 |
|
排出機構をロックできませんでした。 |
|
テープをアンロードできませんでした。 |
|
メディアの書き込みが禁止されています。 |
注釈
dwOffsetLow および dwOffsetHigh で指定されたオフセットで、移動するブロック、ファイルマーク、または設定マークの数が指定されている場合、正のオフセットを指定すると、テープは最後のブロック、ファイルマーク、または設定マークの末尾に移動します。 負のオフセットを指定すると、テープは最後のブロック、ファイル マーク、または設定マークの先頭に後方に移動します。 オフセットが 0 の場合、テープは移動しません。
テープ ドライブとメディアの状態、機能、容量に関する情報を取得するには、 GetTapeParameters 関数を呼び出します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winbase.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |