Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kecuali untuk driver sistem file, manajer I/O mengaitkan objek antrean perangkat untuk pelokalan IRP dengan setiap objek perangkat yang dibuat oleh driver.
Sebagian besar driver perangkat memanggil rutinitas dukungan manajer I/O untuk menggunakan antrean perangkat terkait, yang menyimpan IRP setiap kali permintaan I/O untuk perangkat target datang lebih cepat daripada yang dapat diproses oleh driver sampai selesai. Dengan teknik ini, IRP diantrekan ke rutinitas StartIo yang disediakan oleh pengendali.
Untuk performa yang baik, sebagian besar driver perantara hanya meneruskan IRP ke driver yang lebih rendah secepat masuk, sehingga driver perantara hampir tidak pernah menggunakan antrean perangkat yang terkait dengan objek perangkat masing-masing.
Namun, Anda dapat merancang driver untuk mengelola antrean internal IRP dengan secara eksplisit menyiapkan satu atau lebih antrean perangkat, antrean terinterlok, atau antrean aman pembatalan. Pendekatan ini dapat sangat berguna jika driver mengontrol perangkat yang tumpang tindih operasi I/O. Untuk perangkat seperti itu, mungkin sulit untuk mengelola pemrosesan secara bersamaan dari dua atau lebih IRP (Permintaan I/O) untuk objek perangkat target yang sama hanya dengan menggunakan satu antrean.
Cara paling sederhana untuk membangun antrean internal adalah dengan menggunakan kerangka kerja antrean IRP yang aman untuk pembatalan. Anda dapat menerapkan mekanisme antrean yang Anda pilih di driver Anda. Anda kemudian dapat menggunakan IoCsqInitialize untuk mendaftarkan serangkaian rutinitas panggilan balik yang menangani penyisipan dan penghapusan IRP, serta mengunci dan membuka kunci antrean Anda. Kerangka kerja antrean IRP aman-batal menyediakan rutinitas IoCsqInsertIrp, IoCsqRemoveIrp, dan IoCsqRemoveNextIrp yang secara otomatis menggunakan pemutar balik rutin untuk memasukkan dan menghapus IRP dengan aman dari antrean driver. Sistem ini juga menggunakan rutinitas panggilan balik Anda untuk menghapus setiap IRP yang dibatalkan dengan aman.
Anda juga dapat memilih untuk menyiapkan antrean tambahan untuk IRP di pengendali driver perangkat untuk satu set perangkat fisik heterogen. Misalnya, driver port SCSI menggunakan objek antrean perangkat untuk antrean internal. Driver ini memiliki rutinitas StartIo dan mengatur objek antrean perangkat sebagai antrean pelengkap, selain antrean perangkat yang terkait dengan objek perangkat yang dibuatnya untuk mewakili HBA. Driver port SCSI menggunakan antrian perangkat tambahan untuk menahan IRP yang ditujukan untuk unit logis tertentu pada bus SCSI yang dikontrol HBA.
Driver pengontrol floppy sistem adalah contoh driver yang tidak memiliki rutinitas StartIo dan menggunakan antrean yang saling mengunci. Driver ini menyiapkan antrean berhubungan ganda terkunci, tempat driver dan utas khusus perangkat menyisipkan dan menghapus IRP.
Kernel menentukan jenis objek antrean perangkat. Komponen dukungan eksekutif menyediakan rutinitas untuk menyisipkan dan menghapus IRP dalam antrean terkunci. Driver untuk Windows XP dan versi Windows yang lebih baru dapat menggunakan antrean IRP batal-aman untuk menangani antrean IRP.
Bagian berikut menjelaskan cara menggunakan antrean perangkat keras, antrean saling mengunci, dan antrean aman pembatalan.
Menyiapkan dan Menggunakan Antrean Perangkat
Menyiapkan dan Menggunakan Antrean Yang Saling Mengunci