Bagikan melalui


Fungsi GetTapePosition (winbase.h)

Fungsi GetTapePosition mengambil alamat pita saat ini, dalam blok logis atau absolut.

Sintaks

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

Parameter

[in] hDevice

Tangani ke perangkat untuk mendapatkan posisi pita. Handel ini dibuat dengan menggunakan CreateFile.

[in] dwPositionType

Jenis alamat yang akan diperoleh. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
TAPE_ABSOLUTE_POSITION
0L
Parameter lpdwOffsetLow dan lpdwOffsetHigh menerima alamat blok khusus perangkat. Parameter dwPartition menerima nol.
TAPE_LOGICAL_POSITION
1L
Parameter lpdwOffsetLow dan lpdwOffsetHigh menerima alamat blok logis. Parameter dwPartition menerima partisi pita logis.

[out] lpdwPartition

Penunjuk ke variabel yang menerima jumlah partisi pita saat ini. Partisi diberi nomor logis dari 1 hingga n, di mana 1 adalah partisi pertama pada pita dan n adalah yang terakhir. Ketika alamat blok khusus perangkat diambil, atau jika perangkat hanya mendukung satu partisi, parameter ini menerima nol.

[out] lpdwOffsetLow

Penunjuk ke variabel yang menerima bit berurutan rendah dari posisi pita saat ini.

[out] lpdwOffsetHigh

Penunjuk ke variabel yang menerima bit urutan tinggi dari posisi pita saat ini. Parameter ini bisa null jika bit berurutan tinggi tidak diperlukan.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah NO_ERROR.

Jika fungsi gagal, fungsi dapat mengembalikan salah satu kode kesalahan berikut.

Kode kesalahan Deskripsi
ERROR_BEGINNING_OF_MEDIA
1102L
Upaya untuk mengakses data sebelum penanda awal menengah gagal.
ERROR_BUS_RESET
1111L
Kondisi reset terdeteksi pada bus.
ERROR_DEVICE_NOT_PARTITIONED
1107L
Informasi partisi tidak dapat ditemukan ketika pita sedang dimuat.
ERROR_END_OF_MEDIA
1100L
Penanda akhir pita tercapai selama operasi.
ERROR_FILEMARK_DETECTED
1101L
Tanda file tercapai selama operasi.
ERROR_INVALID_BLOCK_LENGTH
1106L
Ukuran blok salah pada pita baru dalam partisi multivolume.
ERROR_MEDIA_CHANGED
1110L
Pita yang ada di kandar telah diganti atau dilepas.
ERROR_NO_DATA_DETECTED
1104L
Penanda akhir data tercapai selama operasi.
ERROR_NO_MEDIA_IN_DRIVE
1112L
Tidak ada media di dalam kandar.
ERROR_NOT_SUPPORTED
50L
Driver pita tidak mendukung fungsi yang diminta.
ERROR_PARTITION_FAILURE
1105L
Pita tidak dapat dipartisi.
ERROR_SETMARK_DETECTED
1103L
Tanda set tercapai selama operasi.
ERROR_UNABLE_TO_LOCK_MEDIA
1108L
Upaya untuk mengunci mekanisme ejeksi gagal.
ERROR_UNABLE_TO_UNLOAD_MEDIA
1109L
Upaya untuk membongkar pita gagal.
ERROR_WRITE_PROTECT
19L
Media dilindungi terhadap penulisan.

Keterangan

Alamat blok logis relatif terhadap partisi. Alamat blok logis pertama pada setiap partisi adalah nol.

Panggil fungsi GetTapeParameters untuk mendapatkan informasi tentang status, kemampuan, dan kapasitas drive pita dan media.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header winbase.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

CreateFile

GetTapeParameters

SetTapePosition