Bagikan melalui


Input dan Output Pita

Ada beberapa fungsi yang dapat digunakan aplikasi untuk melakukan input dan output (I/O) pada tape drive. Tape I/O mirip dengan I/O yang dilakukan pada perangkat komunikasi.

Saat melakukan I/O pita, beberapa tape drive menyimpan informasi firmware pita di beberapa blok pertama pada pita, biasanya menggunakan beberapa bagian dari 100 blok pertama. Aplikasi tidak boleh menggunakan blok tersebut. Informasi lebih spesifik tentang subjek ini tersedia dari produsen sistem pita individu. Secara umum, aplikasi yang melewati 100 blok pertama pada pita akan menghindari idiosyncrasi drive pita.

Fungsi GetTapePosition dan SetTapePosition mengambil dan memindahkan posisi pita saat ini. Fungsi WriteTapemark menulis sejumlah setmark, marka file, marka file pendek, dan marka file panjang yang ditentukan. Fungsi EraseTape menghapus semua atau sebagian pita.

Fungsi ReadFile dan WriteFile membaca dan menulis data file dari dan ke pita. Data dibaca dan ditulis dalam blok lengkap. Jika ukuran blok pita adalah 512 byte, semua operasi baca dan tulis harus menggunakan buffer yang merupakan kelipatan bilangan bulat sederhana dari ukuran blok tersebut: 512, 1024, 1536, 2048, dan sebagainya. Sebagian besar, jika tidak semua, drive hanya mengizinkan operasi tulis setelah pita diputar ulang atau setelah operasi baca menghasilkan pesan kesalahan akhir data.

Untuk membaca atau menulis data file ke atau dari pita dalam mode blok panjang variabel, lakukan langkah-langkah berikut:

  1. Tentukan apakah drive pita mendukung mode blok panjang variabel dengan memanggil fungsi GetTapeParameters dan memeriksa bit TAPE_DRIVE_VARIABLE_BLOCK anggota FeaturesLow dari struktur TAPE_GET_DRIVE_PARAMETERS yang dikembalikan.
  2. Tentukan mode ukuran blok variabel dengan memanggil fungsi SetTapeParameters, mengatur anggota BlockSize dari struktur TAPE_SET_MEDIA_PARAMETERS ke nol. Kemudian, gunakan ReadFile atau WriteFile untuk membaca atau menulis data file.

Jika ReadFile menemukan marka file, data hingga marka file dibaca dan fungsi gagal. (Fungsi GetLastError mengembalikan kode kesalahan yang menunjukkan jenis marka file yang ditemui.) Sistem operasi memindahkan pita melewati marka file, dan aplikasi dapat memanggil ReadFile lagi untuk melanjutkan membaca.

ReadFile dan WriteFile hanya membaca dan menulis aliran data. Fungsi BackupRead dan BackupWrite membaca dan menulis semua aliran yang terkait dengan file. Ini termasuk data, atribut yang diperluas, keamanan, dan aliran data alternatif. Aliran data keamanan dan alternatif hanya relevan pada partisi sistem file NTFS.

Fungsi BackupSeek mencari maju dalam file yang awalnya diakses oleh BackupRead atau BackupWrite. Fungsi ini memungkinkan aplikasi untuk melewati informasi yang menyebabkan kesalahan akses.

Jika aplikasi hanya perlu mengakses data file, aplikasi harus menggunakan ReadFile dan WriteFile. Fungsi-fungsi ini juga dapat membaca aliran data alternatif jika aliran dibuat dengan menggunakan fungsi CreateFile.

Aplikasi tape-backup harus menggunakan BackupRead dan BackupWrite untuk menyalin semua informasi yang berkaitan dengan file. Namun, fungsi-fungsi ini tidak membaca atau menulis karakteristik file seperti atribut, waktu pembuatan file, dan sebagainya. Aplikasi harus menggunakan fungsi input dan output file, seperti GetFileAttributes dan SetFileAttributes, untuk mengambil dan mengatur nilai tersebut.