Pengantar Rutinitas Driver Standar

Setiap driver mode kernel dibangun di sekitar serangkaian rutinitas driver standar yang ditentukan sistem. Driver mode kernel memproses paket permintaan I/O (IRP) dalam rutinitas standar ini dengan memanggil rutinitas dukungan driver yang disediakan sistem.

Semua driver, terlepas dari tingkatnya dalam rantai driver yang terpasang, harus memiliki serangkaian rutinitas standar dasar untuk memproses RUN. Apakah driver harus menerapkan rutinitas standar tambahan tergantung pada apakah driver mengontrol perangkat fisik atau dilapisi melalui driver perangkat fisik, serta pada sifat perangkat fisik yang mendasar. Driver tingkat terendah yang mengontrol perangkat fisik memiliki rutinitas yang lebih diperlukan daripada driver tingkat yang lebih tinggi, yang biasanya meneruskan IRP ke driver yang lebih rendah untuk diproses.

Rutinitas driver standar dapat dibagi menjadi dua grup: yang harus dimiliki oleh setiap driver mode kernel, dan yang bersifat opsional, tergantung pada jenis driver dan lokasi di tumpukan perangkat.

Tabel berikut mencantumkan rutinitas standar yang diperlukan.

Rutinitas driver standar yang diperlukan Tujuan Di mana dijelaskan
DriverEntry Menginisialisasi pengandar dan obyek pengandarnya. Menulis Rutinitas DriverEntry
TambahkanDevice Menginisialisasi perangkat dan membuat objek perangkat. Menulis AddDevice Routine
Rutinitas Pengiriman Menerima dan memproses RUNPS. Menulis Rutinitas Pengiriman
Membongkar Rilis sumber daya sistem yang diperoleh oleh driver. Menulis Rutinitas Bongkar

Tabel berikut ini mencantumkan beberapa rutinitas opsional.

Rutinitas driver standar opsional Tujuan Di mana dijelaskan
Reinitialize Menyelesaikan inisialisasi driver jika DriverEntry tidak dapat. Menulis Rutinitas Reinisialisasi
StartIo Memulai operasi I/O pada perangkat fisik. Menulis StartIo Routine
Rutinitas Layanan Interupsi Menyimpan status perangkat saat diinterupsi. Menulis ISR
Panggilan Prosedur Yang Ditangguhkan Menyelesaikan pemrosesan interupsi perangkat setelah ISR menyimpan status perangkat. Objek DPC dan DPC
SynchCritSection Menyinkronkan akses ke data driver. Menggunakan Bagian Penting
AdapterControl Memulai operasi DMA. Objek Adapter dan DMA
IoCompletion Menyelesaikan pemrosesan driver IRP. Menyelesaikan RUNPS
Batalkan Membatalkan pemrosesan driver IRP. Membatalkan RUNPS
CustomTimerDpc, IoTimer Mengatur waktu dan menyinkronkan peristiwa. Teknik Sinkronisasi

IRP saat ini dan objek perangkat target adalah parameter input ke banyak rutinitas standar. Setiap driver memproses setiap IRP secara bertahap melalui serangkaian rutinitas standarnya.

Berdasarkan konvensi, driver yang disediakan sistem menambahkan awalan identifikasi khusus driver atau khusus perangkat ke nama setiap rutinitas standar kecuali DriverEntry. Sebagai contoh, dokumentasi ini menggunakan "DD", seperti yang ditunjukkan dalam ilustrasi dalam Pengantar Objek Driver. Mengikuti konvensi ini memudahkan untuk men-debug dan memelihara driver.