Freigeben über


SetTapePosition-Funktion (winbase.h)

Die SetTapePosition-Funktion legt die Bandposition auf dem angegebenen Gerät fest.

Syntax

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

Parameter

[in] hDevice

Handle an das Gerät, auf dem die Bandposition festgelegt werden soll. Dieses Handle wird mithilfe der CreateFile-Funktion erstellt.

[in] dwPositionMethod

Art der auszuführenden Positionierung. Dieser Parameter muss einen der folgenden Werte aufweisen.

Wert Bedeutung
TAPE_ABSOLUTE_BLOCK
1 L
Verschiebt das Band an die gerätespezifische Blockadresse, die durch die Parameter dwOffsetLow und dwOffsetHigh angegeben wird. Der dwPartition-Parameter wird ignoriert.
TAPE_LOGICAL_BLOCK
2L
Verschiebt das Band an die Blockadresse, die von dwOffsetLow und dwOffsetHigh in der von dwPartition angegebenen Partition angegeben wird.
TAPE_REWIND
0L
Verschiebt das Band an den Anfang der aktuellen Partition. Die Parameter dwPartition, dwOffsetLow und dwOffsetHigh werden ignoriert.
TAPE_SPACE_END_OF_DATA
4L
Verschiebt das Band an das Ende der Daten auf der von dwPartition angegebenen Partition.
TAPE_SPACE_FILEMARKS
6L
Verschiebt das Band nach vorne (oder rückwärts) die Anzahl der Dateimarkierungen, die von dwOffsetLow und dwOffsetHigh in der aktuellen Partition angegeben wurden. Der dwPartition-Parameter wird ignoriert.
TAPE_SPACE_RELATIVE_BLOCKS
5L
Verschiebt das Band die Anzahl der von dwOffsetLow und dwOffsetHigh in der aktuellen Partition angegebenen Blöcke vorwärts (oder rückwärts). Der dwPartition-Parameter wird ignoriert.
TAPE_SPACE_SEQUENTIAL_FMKS
7L
Verschiebt das Band vorwärts (oder rückwärts) zum ersten Vorkommen von n-Dateizeichen in der aktuellen Partition, wobei n die von dwOffsetLow und dwOffsetHigh angegebene Zahl ist. Der dwPartition-Parameter wird ignoriert.
TAPE_SPACE_SEQUENTIAL_SMKS
9L
Verschiebt das Band vorwärts (oder rückwärts) zum ersten Vorkommen von n Setmarks in der aktuellen Partition, wobei n die von dwOffsetLow und dwOffsetHigh angegebene Zahl ist. Der dwPartition-Parameter wird ignoriert.
TAPE_SPACE_SETMARKS
8L
Verschiebt das Band die Anzahl der von dwOffsetLow und dwOffsetHigh in der aktuellen Partition angegebenen Setmarkierungen vorwärts (oder rückwärts). Der dwPartition-Parameter wird ignoriert.

[in] dwPartition

Partitionieren, um innerhalb zu positionieren. Wenn dwPartition 0 ist, wird die aktuelle Partition verwendet. Partitionen werden logisch von 1 bis n nummeriert, wobei 1 die erste Partition auf dem Band und n die letzte ist.

[in] dwOffsetLow

Bits mit niedriger Reihenfolge der Blockadresse oder -anzahl für den durch den dwPositionMethod-Parameter angegebenen Positionsvorgang.

[in] dwOffsetHigh

Hochgeordnete Bits der Blockadresse oder -anzahl für den durch den dwPositionMethod-Parameter angegebenen Positionsvorgang. Wenn die hochgeordneten Bits nicht erforderlich sind, sollte dieser Parameter 0 sein.

[in] bImmediate

Gibt an, ob zurückgegeben werden soll, sobald der Verschiebungsvorgang beginnt. Wenn dieser Parameter TRUE ist, gibt die Funktion sofort zurück. wenn FALSE, wird die Funktion erst zurückgegeben, wenn der Verschiebungsvorgang abgeschlossen wurde.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird der Rückgabewert NO_ERROR.

Wenn die Funktion fehlschlägt, kann sie einen der folgenden Fehlercodes zurückgeben.

Fehler BESCHREIBUNG
ERROR_BEGINNING_OF_MEDIA
1102L
Ein Versuch, vor dem Beginn der mittleren Markierung auf Daten zuzugreifen, ist fehlgeschlagen.
ERROR_BUS_RESET
1111L
Auf dem Bus wurde eine Zurücksetzungsbedingung erkannt.
ERROR_DEVICE_NOT_PARTITIONED
1107L
Die Partitionsinformationen konnten beim Laden eines Bandes nicht gefunden werden.
ERROR_END_OF_MEDIA
1100L
Der Bandendemarker wurde während eines Vorgangs erreicht.
ERROR_FILEMARK_DETECTED
1101L
Während eines Vorgangs wurde ein Dateizeichen erreicht.
ERROR_INVALID_BLOCK_LENGTH
1106L
Die Blockgröße ist auf einem neuen Band in einer mehrvolumen Partition falsch.
ERROR_MEDIA_CHANGED
1110L
Das Band, das sich im Laufwerk befand, wurde ersetzt oder entfernt.
ERROR_NO_DATA_DETECTED
1104L
Die Datenendemarkierung wurde während eines Vorgangs erreicht.
ERROR_NO_MEDIA_IN_DRIVE
1112L
Das Laufwerk enthält keine Medien.
ERROR_NOT_SUPPORTED
50L
Der Bandtreiber unterstützt keine angeforderte Funktion.
ERROR_PARTITION_FAILURE
1105L
Das Band konnte nicht partitioniert werden.
ERROR_SETMARK_DETECTED
1103L
Während eines Vorgangs wurde ein Setmark erreicht.
ERROR_UNABLE_TO_LOCK_MEDIA
1108L
Fehler beim Versuch, den Auswurfmechanismus zu sperren.
ERROR_UNABLE_TO_UNLOAD_MEDIA
1109L
Fehler beim Entladen des Bandes.
ERROR_WRITE_PROTECT
19L
Das Medium ist schreibgeschützt.

Hinweise

Wenn der durch dwOffsetLow und dwOffsetHigh angegebene Offset die Anzahl der zu verschiebenden Blöcke, Datei- oder Setmarkierungen angibt, verschiebt ein positiver Offset das Band bis zum Ende des letzten Blocks, der Letzten Dateimarke oder des letzten Setmarks. Ein negativer Offset verschiebt das Band nach hinten an den Anfang des letzten Blocks, Dateizeichens oder Setmarks. Wenn der Offset 0 ist, wird das Band nicht verschoben.

Rufen Sie die GetTapeParameters-Funktion auf, um Informationen über die status, Funktionen und Kapazitäten von Bandlaufwerken und Medien abzurufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winbase.h (einschließlich Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

CreateFile

GetTapeParameters

GetTapePosition