Share via


GetTapePosition-Funktion (winbase.h)

Die GetTapePosition-Funktion ruft die aktuelle Adresse des Bandes in logischen oder absoluten Blöcken ab.

Syntax

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

Parameter

[in] hDevice

Handle an das Gerät, auf dem die Bandposition abgerufen werden soll. Dieses Handle wird mithilfe von CreateFile erstellt.

[in] dwPositionType

Typ der abzurufenden Adresse. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
TAPE_ABSOLUTE_POSITION
0L
Die Parameter lpdwOffsetLow und lpdwOffsetHigh erhalten die gerätespezifische Blockadresse. Der dwPartition-Parameter empfängt null.
TAPE_LOGICAL_POSITION
1 L
Die Parameter lpdwOffsetLow und lpdwOffsetHigh erhalten die logische Blockadresse. Der dwPartition-Parameter empfängt die logische Bandpartition.

[out] lpdwPartition

Zeiger auf eine Variable, die die Nummer der aktuellen Bandpartition empfängt. Partitionen werden logisch zwischen 1 und n nummeriert, wobei 1 die erste Partition auf dem Band und n die letzte ist. Wenn eine gerätespezifische Blockadresse abgerufen wird oder das Gerät nur eine Partition unterstützt, empfängt dieser Parameter null.

[out] lpdwOffsetLow

Zeiger auf eine Variable, die die Bits in niedriger Reihenfolge der aktuellen Bandposition empfängt.

[out] lpdwOffsetHigh

Zeiger auf eine Variable, die die Bits in hoher Reihenfolge der aktuellen Bandposition empfängt. Dieser Parameter kann NULL sein, wenn die Bits hoher Reihenfolge nicht erforderlich sind.

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.

Fehlercode BESCHREIBUNG
ERROR_BEGINNING_OF_MEDIA
1102L
Ein Versuch, vor dem Anfang des mittleren Markers auf Daten zuzugreifen, ist fehlgeschlagen.
ERROR_BUS_RESET
1111L
Im Bus wurde eine Zurücksetzungsbedingung erkannt.
ERROR_DEVICE_NOT_PARTITIONED
1107L
Die Partitionsinformationen konnten nicht gefunden werden, wenn ein Band geladen wurde.
ERROR_END_OF_MEDIA
1100L
Der Bandendemarker wurde während eines Vorgangs erreicht.
ERROR_FILEMARK_DETECTED
1101L
Während eines Vorgangs wurde ein Filemark 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 auf dem Laufwerk befand, wurde ersetzt oder entfernt.
ERROR_NO_DATA_DETECTED
1104L
Der Datenendemarker 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

Eine logische Blockadresse ist relativ zu einer Partition. Die erste logische Blockadresse auf jeder Partition ist null.

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

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 (Windows.h einschließen)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

CreateFile

GetTapeParameters

SetTapePosition