Contoh Objek Perangkat WDM

Gambar berikut mengilustrasikan objek perangkat yang mewakili perangkat keyboard dan mouse yang ditampilkan sebelumnya dalam gambar yang mengilustrasikan Konfigurasi Perangkat Keras Keyboard dan Mouse. Keyboard dan driver mouse yang ditunjukkan pada gambar yang mengilustrasikan Lapisan Keyboard dan Driver Mouse membuat objek perangkat ini dengan memanggil rutinitas dukungan I/O (IoCreateDevice).

objek keyboard dan perangkat mouse.

Untuk perangkat keyboard dan mouse, driver port dan kelas masing-masing membuat objek perangkat. Driver port membuat objek perangkat fisik (PDO) untuk mewakili port fisik. Setiap driver kelas membuat objek perangkat fungsional (FDO) sendiri untuk mewakili keyboard atau perangkat mouse sebagai target untuk permintaan I/O.

Setiap driver kelas memanggil rutinitas dukungan I/O untuk mendapatkan pointer ke objek perangkat driver tingkat bawah berikutnya, sehingga driver kelas dapat menautkan dirinya di atas driver itu, yang merupakan driver port. Kemudian driver kelas dapat mengirim permintaan I/O ke driver port untuk PDO target yang mewakili perangkat fisiknya.

Driver filter opsional yang ditambahkan ke konfigurasi akan membuat objek perangkat filter (filter DO). Seperti driver kelas, driver filter opsional menautkan dirinya ke driver berikutnya yang lebih rendah di tumpukan perangkat dan mengirim permintaan I/O untuk PDO target ke driver berikutnya yang lebih rendah.

Seperti yang ditunjukkan sebelumnya pada gambar Keyboard dan Lapisan Driver Mouse , setiap driver port adalah driver bus (tingkat terendah), sehingga setiap driver port perangkat yang menghasilkan gangguan harus mengatur objek interupsi dan mendaftarkan ISR.

Driver port perangkat ganda, seperti driver i8042 untuk keyboard dan pengontrol perangkat tambahan yang ditunjukkan pada angka Konfigurasi Perangkat Keras Keyboard dan Mouse , harus mengatur objek interupsi khusus perangkat jika setiap perangkat menggunakan vektor interupsi yang berbeda. Saat menulis driver seperti itu, Anda dapat menerapkan ISR terpisah untuk setiap perangkat atau menerapkan satu ISR untuk kedua perangkat.