Pengantar Objek Driver
Manajer I/O membuat objek driver untuk setiap driver yang telah diinstal dan dimuat. Objek driver didefinisikan menggunakan struktur DRIVER_OBJECT .
Ketika manajer I/O memanggil rutinitas DriverEntry driver, manajer I/O menyediakan alamat objek driver. Objek driver berisi penyimpanan untuk titik masuk ke banyak rutinitas standar driver. Driver bertanggung jawab untuk mengisi titik masuk ini.
Gambar berikut mengilustrasikan objek driver, dengan serangkaian rutinitas standar yang ditentukan sistem yang dapat atau harus dimiliki driver tingkat terendah dan tingkat yang lebih tinggi.
Setiap rutinitas standar dengan tanda bintang di samping namanya menerima paket permintaan I/O (IRP) sebagai input. Masing-masing rutinitas standar ini juga menerima penunjuk ke objek perangkat target untuk permintaan I/O.
Manajer I/O menentukan jenis objek driver dan menggunakan objek driver untuk mendaftar dan melacak informasi tentang gambar driver yang dimuat. Perhatikan bahwa titik entri pengiriman (DDDispatchXxx melalui DDDispatchYyy) di objek driver sesuai dengan kode fungsi utama (IRP_MJ_XXX) yang diteruskan di lokasi tumpukan I/O IRP.
Manajer I/O merutekan setiap IRP terlebih dahulu ke rutinitas pengiriman yang disediakan pengemudi. Rutinitas pengiriman driver tingkat terendah biasanya memanggil rutinitas dukungan I/O (IoStartPacket) untuk mengantre (atau meneruskan) setiap IRP yang memiliki argumen yang valid ke rutinitas StartIo driver. Rutinitas StartIo memulai operasi I/O yang diminta pada perangkat tertentu. Driver tingkat yang lebih tinggi biasanya tidak memiliki rutinitas StartIo , tetapi mereka bisa.
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