Bagikan melalui


Opsi Dan kelas aturan Driver Verifier

Topik ini menjelaskan fitur opsional dan kelas aturan dalam Driver Verifier. Lihat Pengaturan standar untuk daftar opsi yang disertakan saat Anda menggunakan pengaturan standar.

Catatan

Beberapa pemeriksaan otomatis selalu dilakukan pada driver yang sedang diverifikasi, terlepas dari opsi mana yang telah dipilih. Jika driver menggunakan memori pada IRQL yang tidak tepat, memanggil atau melepaskan kunci putaran dan alokasi memori secara tidak benar, mengalihkan tumpukan, atau membebaskan kumpulan memori tanpa terlebih dahulu menghapus timer, Driver Verifier akan mendeteksi perilaku ini. Ketika driver dibongkar, Driver Verifier akan memeriksa untuk melihat bahwa driver telah melepaskan sumber dayanya dengan benar.

Mengaktifkan kelas aturan dengan /ruleclasses

Mulai dari Windows 10, versi 17627 dan yang lebih baru, Anda dapat mengaktifkan kelas aturan dengan sintaks berikut:

/ruleclasses or /rc [<ruleclass_1> <ruleclass_2> ... <ruleclass_k>]

Perhatikan bahwa saat mengaktifkan beberapa kelas (diwakili oleh bilangan bulat desimal positif di bawah), pisahkan setiap bilangan bulat dengan karakter spasi.

Deskripsi untuk kelas aturan ini dapat ditemukan di bawah ini.

Kelas aturan standar

Kelas aturan ID Desimal
Kumpulan khusus 1
Memaksa pemeriksaan IRQL 2
Pelacakan kumpulan 4
Verifikasi I/O 5
Deteksi kebuntuan 6
Pemeriksaan DMA 8
Pemeriksaan keamanan 9
Pemeriksaan lain-lain 12
Pemeriksaan kepatuhan DDI 18
Verifikasi WDF 34

Kelas aturan tambahan

Kelas aturan ini ditujukan untuk pengujian skenario tertentu. Kelas aturan ditandai dengan (*) memerlukan Verifikasi I/O (5) yang akan diaktifkan secara otomatis. Bendera yang ditandai dengan (**) mendukung pennonaktifkan aturan individual.

Kelas aturan ID Desimal
Simulasi sumber daya rendah acak 3
Paksa permintaan I/O yang tertunda (*) 10
Pengelogan IRP 11
MDL invariant memeriksa tumpukan (*) 14
MDL invariant memeriksa driver (*) 15
Fuzzing penundaan kerangka kerja daya 16
Pemeriksaan antarmuka port/miniport 17
Simulasi sumber daya rendah sistematis 19
Pemeriksaan kepatuhan DDI (tambahan) 20
Fuzzing penundaan sinkronisasi kernel 24
Verifikasi sakelar VM 25
Pemeriksaan integritas kode 26
Pemeriksaan isolasi driver (memerlukan 36) 33
Pemeriksaan IRQL tambahan 35
Aktifkan DIF 36

Fitur opsional dan deskripsi kelas aturan

Kumpulan Khusus

Ketika opsi ini diaktifkan, Driver Verifier mengalokasikan sebagian besar permintaan memori driver dari kumpulan khusus. Kumpulan khusus ini dipantau untuk overrun memori, underrun memori, dan memori yang diakses setelah dibebaskan.

Memaksa Pemeriksaan IRQL

Ketika opsi ini diaktifkan, Driver Verifier menempatkan tekanan memori ekstrem pada driver dengan membatalkan kode yang dapat di-pageable. Jika driver mencoba mengakses memori halaman di IRQL yang salah atau saat memegang kunci spin, Driver Verifier mendeteksi perilaku ini.

Simulasi Sumber Daya Rendah (disebut Simulasi sumber daya rendah acak dalam Windows 8.1)

Ketika opsi ini diaktifkan, Driver Verifier secara acak gagal permintaan alokasi kumpulan dan permintaan sumber daya lainnya. Dengan menyuntikkan kesalahan alokasi ini ke dalam sistem, Driver Verifier menguji kemampuan driver untuk mengatasi situasi sumber daya rendah.

Pelacakan Kumpulan

Ketika opsi ini diaktifkan, Driver Verifier memeriksa untuk melihat apakah driver telah membebaskan semua alokasi memorinya ketika dibongkar. Ini mengungkapkan kebocoran memori.

Verifikasi I/O

Ketika opsi ini aktif, Driver Verifier mengalokasikan RUN driver dari kumpulan khusus, dan memantau penanganan I/O driver. Ini mendeteksi penggunaan rutinitas I/O yang ilegal atau tidak konsisten.

Deteksi Kebuntuan

Ketika opsi ini aktif, Driver Verifier memantau penggunaan kunci putar, mutex, dan mutex cepat driver. Ini mendeteksi apakah kode driver berpotensi menyebabkan kebuntuan di beberapa titik.

Verifikasi I/O yang Ditingkatkan

Ketika opsi ini aktif, Driver Verifier memantau panggilan beberapa rutinitas Manajer I/O dan melakukan pengujian stres runtime integrasi PnP, runtime integrasi daya, dan RUNP WMI. Di Windows 7 dan versi yang lebih baru dari sistem operasi Windows, semua fitur Verifikasi I/O yang Ditingkatkan disertakan sebagai bagian dari Verifikasi I/O dan tidak lagi tersedia atau perlu memilih opsi ini di Driver Verifier Manager atau dari baris perintah.

Verifikasi DMA

Ketika opsi ini aktif, Driver Verifier memantau penggunaan rutinitas DMA driver. Ini mendeteksi penggunaan buffer, adaptor, dan register peta DMA yang tidak tepat.

Pemeriksaan Keamanan

(Windows Vista dan yang lebih baru) Ketika opsi ini aktif, Driver Verifier mencari kesalahan umum yang dapat mengakibatkan kerentanan keamanan, seperti referensi ke alamat mode pengguna dengan rutinitas mode kernel.

Pemeriksaan Lain-lain

(Windows Vista dan yang lebih baru) Ketika opsi ini aktif, Driver Verifier mencari penyebab umum crash driver, seperti kesalahan penanganan memori yang dibebaskan.

Paksa Permintaan I/O Tertunda

(Windows Vista dan yang lebih baru) Ketika opsi ini aktif, Driver Verifier menguji respons driver untuk STATUS_PENDING mengembalikan nilai dengan mengembalikan STATUS_PENDING untuk panggilan acak ke IoCallDriver.

Pengelogan IRP

(Windows Server 2003 dan yang lebih baru) Ketika opsi ini aktif, Driver Verifier memantau penggunaan runtime integrasi driver dan membuat log penggunaan IRP.

Verifikasi Storport

(Windows Vista dan yang lebih baru) Ketika opsi ini aktif, Driver Verifier memantau driver miniport Storport untuk penggunaan rutinitas Storport yang diekspor, penundaan yang berlebihan, dan penanganan permintaan Storport yang tidak tepat.

Power Framework Tunda Fuzzing

(Dimulai dengan Windows 8) Ketika opsi ini aktif, Driver Verifier mengacak jadwal utas untuk membantu menghapus kesalahan konkurensi pada driver yang menggunakan kerangka kerja manajemen daya (PoFx). Opsi ini tidak disarankan untuk driver yang tidak secara langsung menggunakan kerangka kerja manajemen daya (PoFx)..

Pemeriksaan kepatuhan DDI

(Dimulai dengan Windows 8) Ketika opsi ini aktif, Driver Verifier menerapkan serangkaian aturan antarmuka driver perangkat (DDI) yang memeriksa interaksi yang tepat antara driver dan antarmuka kernel sistem operasi.

Pemeriksaan MDL Invariant untuk Tumpukan

(Dimulai dengan Windows 8) Opsi Invariant MDL Checking for Stack memantau bagaimana driver menangani buffer MDL yang invarian di seluruh tumpukan driver. Driver Verifier dapat mendeteksi modifikasi ilegal buffer MDL invariant. Untuk menggunakan opsi ini, Verifikasi I/O harus diaktifkan pada setidaknya satu driver.

MDL Invariant Memeriksa Driver

(Dimulai dengan Windows 8) Opsi Invariant MDL Checking for Driver memantau bagaimana driver menangani buffer MDL yang invarian per driver. Opsi ini mendeteksi modifikasi ilegal buffer MDL invariant. Untuk menggunakan opsi ini, Anda harus mengaktifkan Verifikasi I/O pada setidaknya satu driver.

Injeksi Kegagalan Berbasis Tumpukan

(Hanya tersedia dengan Windows 8 dan WDK 8) Opsi Injeksi Kegagalan Berbasis Tumpukan menyuntikkan kegagalan sumber daya dalam driver mode kernel. Opsi ini menggunakan driver khusus, KmAutoFail.sys, bersama dengan Driver Verifier untuk menembus jalur penanganan kesalahan driver.

Simulasi sumber daya rendah sistematis

(Dimulai dengan Windows 8.1) Opsi simulasi sumber daya rendah sistematis menyuntikkan kegagalan sumber daya dalam driver mode kernel.

Verifikasi NDIS/WIFI

(Dimulai dengan Windows 8.1) Ketika opsi ini aktif, Driver Verifier menerapkan serangkaian aturan NDIS dan LAN nirkabel (WIFI) yang memeriksa interaksi yang tepat antara driver miniport NDIS dan kernel sistem operasi.

Fuzzing penundaan sinkronisasi kernel

(Dimulai dengan Windows 8.1) Opsi ini mengacak jadwal utas untuk membantu mendeteksi bug konkurensi pada driver.

Verifikasi sakelar VM

(Dimulai dengan Windows 8.1) Opsi ini memantau driver filter (ekstensi sakelar yang dapat diperluas) yang berjalan di dalam Hyper-V Extensible Switch.

Pemeriksaan antarmuka Port/Miniport

Pemeriksaan antarmuka port/miniport memungkinkan Driver Verifier untuk memeriksa antarmuka DDI antara PortCls.sys dan driver miniport audionya, bersama dengan ks.sys dan driver miniport AVStream-nya. Lihat Aturan untuk driver AVStream dan Aturan untuk driver audio.

Pemeriksaan integritas kode

Saat menggunakan keamanan berbasis virtualisasi untuk mengisolasi Integritas Kode, satu-satunya cara memori kernel dapat dieksekusi adalah melalui verifikasi Integritas Kode. Ini berarti bahwa halaman memori kernel tidak pernah dapat ditulis dan Dapat Dieksekusi (W+X) dan kode yang dapat dieksekusi tidak dapat dimodifikasi secara langsung. Pemeriksaan integritas kode memastikan kompatibilitas aturan integritas kode ini, dan mendeteksi pelanggaran.

Verifikasi WDF

Verifikasi WDF memeriksa apakah driver mode kernel mengikuti persyaratan Kerangka Kerja Driver Mode Kernel (KMDF) dengan benar.

Pemeriksaan IRQL tambahan

Pemeriksaan IRQL tambahan menambah aturan IRQL Pemeriksaan Kepatuhan DDI untuk PASSIVE_LEVEL. Ini terdiri dari dua aturan:

  • Aturan IrqlIoRtlZwPassive menentukan bahwa driver memanggil DDI yang tercantum dalam aturan hanya ketika dijalankan di IRQL = PASSIVE_LEVEL.
  • Aturan IrqlNtifsApcPassive menentukan bahwa driver memanggil DDI yang tercantum dalam aturan hanya ketika dijalankan baik di IRQL = PASSIVE_LEVEL atau di IRQL <= APC_LEVEL.

Pemeriksaan Isolasi Driver

Pemeriksaan Isolasi Driver sangat penting untuk memvalidasi persyaratan isolasi paket driver runtime Driver Windows Untuk informasi selengkapnya, lihat Mulai mengembangkan driver Windows. Pemeriksaan memantau pembacaan dan penulisan registri yang tidak diizinkan untuk paket driver terisolasi.

Pengaturan standar

Opsi yang disertakan dalam pengaturan standar

Kumpulan Khusus

Memaksa Pemeriksaan IRQL

Pelacakan Kumpulan

Verifikasi I/O

Deteksi Kebuntuan

Verifikasi I/O yang Ditingkatkan (Di Windows 7 dan yang lebih baru, opsi ini secara otomatis diaktifkan saat Anda memilih Verifikasi I/O)

Verifikasi DMA

Pemeriksaan Keamanan

Pemeriksaan Lain-lain (Windows Vista dan yang lebih baru)

Pemeriksaan kepatuhan DDI (Dimulai dengan Windows 8)

Opsi Pemverifikasi Driver yang memerlukan Verifikasi I/O

Ada empat opsi yang mengharuskan Anda untuk terlebih dahulu mengaktifkan Verifikasi I/O. Jika Verifikasi I/O tidak diaktifkan, opsi ini tidak diaktifkan.