Paket permintaan I/O

Sebagian besar permintaan yang dikirim ke driver perangkat dikemas dalam paket permintaan I/O (IRPs). Komponen sistem operasi atau driver mengirim IRP ke driver dengan memanggil IoCallDriver, yang memiliki dua parameter: pointer ke DEVICE_OBJECT dan pointer ke IRP. DEVICE_OBJECT memiliki penunjuk ke DRIVER_OBJECT terkait. Saat komponen memanggil IoCallDriver, kami mengatakan komponen mengirim IRP ke objek perangkat atau mengirim IRP ke driver yang terkait dengan objek perangkat. Terkadang kita menggunakan frasa melewati IRP atau meneruskan IRP alih-alih mengirim IRP.

Biasanya IRP diproses oleh beberapa driver yang diatur dalam tumpukan. Setiap driver dalam tumpukan dikaitkan dengan objek perangkat. Untuk informasi selengkapnya, lihat Simpul perangkat dan tumpukan perangkat. Ketika IRP diproses oleh tumpukan perangkat, IRP biasanya dikirim terlebih dahulu ke objek perangkat atas di tumpukan perangkat. Misalnya, jika IRP diproses oleh tumpukan perangkat yang ditampilkan dalam diagram ini, IRP akan dikirim terlebih dahulu ke objek perangkat filter (Filter DO) di bagian atas tumpukan perangkat.

diagram simpul perangkat dan tumpukan perangkatnya.

Meneruskan IRP ke tumpukan perangkat

Misalkan manajer I/O mengirimkan IRP ke Filter DO dalam diagram. Driver yang terkait dengan Filter DO, AfterThought.sys, memproses IRP dan kemudian meneruskannya ke objek perangkat fungsi (FDO), yang merupakan objek perangkat bawah berikutnya di tumpukan perangkat. Ketika driver melewati IRP ke objek perangkat bawah berikutnya di tumpukan perangkat, kami mengatakan driver melewati IRP ke tumpukan perangkat.

Beberapa RUNP diteruskan ke tumpukan perangkat ke objek perangkat fisik (PDO). Runtime integrasi lain tidak pernah mencapai PDO karena diselesaikan oleh salah satu driver di atas PDO.

IRP mandiri

Struktur IRP mandiri dalam arti bahwa ia menyimpan semua informasi yang dibutuhkan driver untuk menangani permintaan I/O. Beberapa bagian dari struktur IRP menyimpan informasi yang umum untuk semua driver yang berpartisipasi dalam tumpukan. Bagian lain dari informasi penahanan IRP yang khusus untuk driver tertentu di tumpukan.