TAPE_ERROR_ROUTINE fungsi panggilan balik (minitape.h)
TAPE_ERROR_ROUTINE menyediakan penanganan kesalahan khusus perangkat saat SRB selesai dengan status kesalahan. Rutinitas ini bersifat opsional.
Sintaks
TAPE_ERROR_ROUTINE TapeErrorRoutine;
void TapeErrorRoutine(
[in] PVOID MinitapeExtension,
[in] PSCSI_REQUEST_BLOCK Srb,
[in, out] PTAPE_STATUS TapeStatus
)
{...}
Parameter
[in] MinitapeExtension
Arahkan ke ekstensi minitape khusus driver. Ini adalah NULL jika driver miniclass tidak meminta ekstensi minitape ketika diinisialisasi.
[in] Srb
Arahkan ke SRB untuk operasi yang gagal.
[in, out] TapeStatus
Arahkan ke TAPE_STATUS yang diatur oleh driver kelas pita. Driver miniclass pita dapat mengubah TAPE_STATUS atau membiarkannya tidak berubah.
Nilai kembali
Tidak ada
Keterangan
Sebagian besar driver miniclass pita tidak menyediakan rutinitas TAPE_ERROR_ROUTINE karena kode TAPE_STATUS yang ditetapkan oleh driver kelas pita sesuai.
Namun, untuk beberapa perangkat, driver miniclass pita dapat mengidentifikasi kode kesalahan yang lebih tepat daripada driver kelas pita. Misalnya, jika driver kelas pita mengembalikan TAPE_STATUS_BUS_RESET, driver miniclass pita mungkin dapat menentukan bahwa masalah sebenarnya lebih akurat diwakili oleh TAPE_STATUS_NO_MEDIA untuk beberapa perangkat.
Driver miniclass pita secara opsional menentukan titik masuk untuk rutinitas TAPE_ERROR_ROUTINE dalam struktur TAPE_INIT_DATA_EX yang diteruskannya ke TapeClassInitialize dari rutinitas DriverEntry-nya . Untuk driver miniclass seperti itu, ketika kesalahan terjadi selama perintah baca, tulis, atau kontrol perangkat, driver kelas pita menetapkan kode TAPE_STATUS yang sesuai dan memanggil rutinitas TAPE_ERROR_ROUTINE driver miniclass dengan ekstensi minitape, SRB yang gagal, dan kode TAPE_STATUS yang akan dikembalikan.
TAPE_ERROR_ROUTINE menentukan apakah akan mengubah status yang disediakan oleh driver kelas pita berdasarkan parameter input dan pengetahuannya tentang perangkat. Jika bit SRB_STATUS_AUTOSENSE_VALID diatur dalam Srb-SrbStatus>, maka SRB berisi informasi indra SCSI di SenseInfoBuffer. Panjang buffer adalah SenseInfoBufferLength. Rutinitas TAPE_ERROR_ROUTINE harus memeriksa informasi ini bersama dengan SrbStatus dan ScsiStatus di SRB untuk menentukan apakah akan mengubah TAPE_STATUS yang dikembalikan.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | minitape.h (termasuk Minitape.h) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk