Pemverifikasi Driver: Apa yang Baru
Pemverifikasi Driver tersedia di semua versi Windows yang dimulai dengan Windows 2000. Setiap versi memperkenalkan fitur baru dan pemeriksaan untuk menemukan bug di driver Windows. Bagian ini meringkas perubahan dan menyediakan tautan ke dokumentasi terkait.
- Driver Verifier di Windows 10
- Driver Verifier di Windows 8.1
- Pemverifikasi Driver di Windows 8
- Pemverifikasi Driver di Windows 7
- Pemverifikasi Driver di Windows Vista
- Pemverifikasi Driver di Windows XP
Driver Verifier di Windows 11 (Diperbarui: 30 September 2021)
Dimulai dengan Windows 11, banyak bendera sekarang diaktifkan tanpa boot ulang menggunakan sintaks perintah yang berbeda dari sintaks volatil. Lihat Sintaks Perintah Pemverifikasi Driver untuk informasi selengkapnya tentang sintaks baru.
Driver Verifier di Windows 10 (Diperbarui: 8 Mei 2018)
Penting
Untuk informasi tentang mengaktifkan WDF Verifier di Windows 10, rilis versi 1803 atau yang lebih baru, lihat Menggunakan Pemverifikasi KMDF.
- Anda masih dapat mengaktifkan verifikasi WDF sebagai bagian dari bendera Driver Verifier
/standard
. Lihat Sintaks Perintah Pemverifikasi Driver untuk informasi selengkapnya. - Perubahan ini akan berdampak pada Anda jika Anda mengaktifkan DV dengan sintaksis
/flags 0x209BB
karena verifikasi WDF tidak akan lagi diaktifkan secara otomatis.
Dimulai dengan Windows 10, pemverifikasi driver menyertakan aturan validasi driver baru untuk teknologi berikut:
Driver Verifier di Windows 8-1 (Diperbarui: 17 Juni 2013)
Dimulai dengan Windows 8.1, Driver Verifier memperkenalkan empat opsi baru untuk mendeteksi kesalahan.
Opsi verifikasi NDIS/WIFI menerapkan serangkaian aturan NDIS dan LAN nirkabel yang memeriksa interaksi yang tepat antara driver miniport NDIS dan kernel sistem operasi.
Opsi simulasi sumber daya rendah sistematis menyuntikkan kegagalan sumber daya dalam driver mode kernel.
Opsi fuzzing penundaan sinkronisasi Kernel mengacak jadwal utas untuk membantu mendeteksi bug konkurensi di driver.
Opsi verifikasi sakelar VM memantau driver filter (ekstensi sakelar yang dapat diperluas) yang berjalan di dalam Hyper-V Extensible Switch.
Ekstensi debugger baru: !ruleinfo
Driver Verifier di Windows 8 (Diperbarui: 20 Oktober 2012)
Dimulai dengan Windows 8, Driver Verifier memperkenalkan lima opsi baru untuk mendeteksi kesalahan.
- Opsi Power Framework Delay Fuzzing menyisipkan penundaan eksekusi acak untuk membantu mendeteksi bug konkurensi pada driver yang menggunakan kerangka kerja manajemen daya (PoFx). Penundaan eksekusi memiliki batas waktu atas. Opsi ini tidak disarankan untuk driver yang tidak secara langsung menggunakan kerangka kerja manajemen daya (PoFx).
- Opsi pemeriksaan kepatuhan DDI menerapkan aturan penggunaan antarmuka driver perangkat (DDI) yang sama dengan yang digunakan Pemverifikasi Driver Statis untuk memverifikasi bahwa driver Anda melakukan panggilan fungsi di IRQL yang diperlukan untuk fungsi tersebut. Pemeriksaan kepatuhan DDI dijalankan sebagai bagian dari opsi Pemverifikasi Driver standar.
- Opsi Invariant MDL Checking for Stack memantau bagaimana driver menangani buffer MDL yang invarian di seluruh tumpukan driver.
- Opsi Invariant MDL Checking for Driver memantau bagaimana driver menangani buffer MDL yang invarian berdasarkan per driver.
- Opsi Injeksi Kegagalan Berbasis Tumpukan menyuntikkan kegagalan alokasi sumber daya dalam driver mode kernel.
Saat Membuat, menyebarkan, dan menguji driver menggunakan Visual Studio 2012 dan WDK untuk Windows 8, Anda juga dapat mengonfigurasi Driver Verifier untuk berjalan di komputer uji saat menyebarkan driver untuk pengujian.
Driver Verifier di Windows 7 (Diperbarui: 22 Oktober 2012)
Untuk Windows 7, Driver Verifier telah ditingkatkan dengan pengujian dan fitur baru yang memungkinkan Driver Verifier untuk mengekspos lebih banyak kelas bug driver yang khas.
- Referensi yang Salah untuk Handel Pengguna dari Driver Kernel
- Peningkatan Verifikasi I/O
- Kumpulan Khusus, Pelacakan Kumpulan, dan Peningkatan Simulasi Sumber Daya Rendah
- Penggunaan Mekanisme Sinkronisasi yang Salah
- Referensi Objek Salah
- Biaya Kuota Kumpulan dari Rutinitas DPC
- Blok atau Penundaan Matikan Sistem
- Permintaan I/O Tertunda Paksa yang Ditingkatkan
Di Windows 7, Driver Verifier menyediakan pemeriksaan untuk kunci putar antrean, pemeriksaan ini menyerupai yang disediakan untuk memutar kunci di versi Windows sebelumnya. Pemeriksaan ini mencakup hal-hal berikut:
Memverifikasi bahwa operasi yang harus menaikkan nilai tingkat permintaan interupsi (IRQL), seperti KeAcquireInStackQueuedSpinLock, sebenarnya tidak menurunkan nilai IRQL.
Memverifikasi bahwa operasi yang harus menurunkan nilai IRQL, seperti KeReleaseInStackQueuedSpinLock, sebenarnya tidak menaikkan nilai IRQL.
Pemangkasan set kerja proses Sistem jika opsi Pemeriksaan Force IRQL diaktifkan, ketika IRQL dinaikkan ke DISPATCH_LEVEL atau lebih tinggi, dalam upaya untuk mengekspos kemungkinan referensi ke memori yang dapat di-pageable saat driver berjalan di IRQL yang ditinggikan.
Memprediksi kemungkinan kebuntuan saat opsi Deteksi Kebuntuan diaktifkan.
Mencoba menggunakan struktur data KSPIN_LOCK yang sama baik sebagai kunci putar maupun sebagai kunci spin antrean tumpukan saat opsi Deteksi KebunTuan diaktifkan.
Memeriksa nilai penunjuk yang jelas salah, seperti alamat virtual mode pengguna yang digunakan sebagai alamat kunci putar.
Mencatat transisi IRQL di log Driver Verifier IRQL. Informasi ini muncul ketika Anda menggunakan ekstensi !verifier 8 dari Windows Debuggers. Lihat !verifier.
Informasi Penelusuran Kesalahan Tambahan
Di Windows 7, Pemverifikasi Driver menyediakan informasi tambahan berikut yang berguna untuk penelusuran kesalahan:
Ada log dengan jejak tumpukan dalam urutan kronologis untuk panggilan terbaru ke KeEnterCriticalRegion dan KeLeaveCriticalRegion dari driver terverifikasi. Konten log ditampilkan dengan menggunakan ekstensi debugger !verifier 0x200 dari Windows Debuggers. Informasi ini dapat berguna untuk memahami skenario di mana utas secara tak terduga berjalan di wilayah penting atau mencoba meninggalkan wilayah penting yang telah ditinggalkannya.
Anda dapat menampilkan informasi tambahan dari Log Permintaan I/O Paksa Tertunda dengan menggunakan ekstensi debugger !verifier 0x40 . Di versi Windows sebelumnya, log hanya berisi satu pelacakan tumpukan untuk setiap IRP yang dipaksa penundaan Driver Verifier. Ini adalah jejak tumpukan sejak IoCompleteRequest dipanggil untuk pertama kalinya untuk IRP yang tertunda paksa. Windows 7 memiliki setidaknya dua entri log, mungkin lebih dari dua, untuk setiap IRP paksa yang tertunda:
- Pelacakan tumpukan pada saat Driver Verifier memilih IRP untuk dipaksa tertunda. Driver Verifier memilih beberapa RUN yang akan dipaksa tertunda saat salah satu driver terverifikasi memanggil IoCallDriver.
- Jejak tumpukan untuk setiap panggilan IoCompleteRequest untuk IRP yang tertunda paksa sebelum penyelesaian mencapai driver terverifikasi. Lebih dari satu panggilan IoCompleteRequest dapat ada untuk IRP yang sama karena salah satu driver dapat menghentikan penyelesaian sementara dari rutinitas penyelesaiannya dan kemudian melanjutkannya dengan memanggil IoCompleteRequest lagi.
Ada jejak tumpukan yang lebih valid di log Transisi IRQL. Log ini ditampilkan dengan menggunakan !verifier 8. Di versi Windows yang lebih lama dari Windows 7, Driver Verifier dapat mencoba mencatat beberapa jejak tumpukan ini di IRQL yang ditingkatkan dan gagal menangkap jejak tumpukan karena nilai IRQL yang tinggi. Di Windows 7, Driver Verifier mencoba menangkap jejak tumpukan ini:
- Sebelum menaikkan IRQL, misalnya, ketika driver terverifikasi memanggil KeAcquireSpinLock.
- Setelah IRQL diturunkan, ketika driver terverifikasi memanggil KeReleaseSpinLock.
Dengan cara ini, Driver Verifier dapat menangkap lebih banyak jejak tumpukan transisi IRQL ini.
!analyze dapat melakukan triase masalah yang diekspos oleh pemeriksaan Enhanced I/O Verifier (yang merupakan bagian dari I/O Verifier di Windows 7). Di versi Windows sebelumnya, pelaporan kesalahan Pemverifikasi I/O yang Disempurnakan terdiri dari menampilkan deskripsi cacat driver yang terdeteksi oleh Driver Verifier diikuti dengan pemecah masalah menjadi debugger. Menjalankan !analyze setelah jeda seperti itu tidak mengakibatkan triase yang bermakna untuk banyak jeda ini karena !analyze tidak dapat menggunakan informasi dari teks deskripsi kesalahan yang muncul di debugger. Di Windows 7, informasi yang bermakna tentang cacat driver ini disimpan oleh Driver Verifier dalam memori. !analyze dapat menemukan informasi ini dan melakukan triase otomatis yang jauh lebih bermakna untuk banyak jeda ini.
Driver Verifier di Windows Vista (Diperbarui: 9 Februari 2009)
Untuk Windows Vista, Pemverifikasi Driver telah ditingkatkan dengan pengujian dan fitur baru.
- Mengaktifkan Pemverifikasi Driver dan Mengubah Pengaturan tanpa Reboot
- Simulasi Sumber Daya Rendah yang Disempurnakan
- Paksa Permintaan I/O Tertunda
- Pemeriksaan Keamanan
- Verifikasi I/O yang Lebih Menyeluruh
- Pemeriksaan IRQL yang Ditingkatkan
- Pemeriksaan Lain-lain
- Pelacakan Halaman Memori Terkunci
- Pemeriksaan Otomatis Tambahan
Driver Verifier di Windows XP (Diperbarui: 4 Desember 2001)
Driver Verifier adalah alat untuk memantau driver mode kernel Windows dan driver grafis. Microsoft sangat mendorong produsen perangkat keras untuk menguji driver mereka dengan Driver Verifier untuk memastikan bahwa driver tidak melakukan panggilan fungsi ilegal atau menyebabkan kerusakan sistem. Driver Verifier telah ditingkatkan dengan pengujian dan fitur baru untuk Microsoft Windows XP.
Driver yang dikirimkan ke WHQL untuk pengujian harus lulus Driver Verifier. Fitur Pemverifikasi Driver Baru di Windows XP meliputi:
- Driver Verifier Manager, antarmuka pengguna grafis (GUI) baru untuk verifier.exe
- Pemeriksaan otomatis baru untuk Pengalihan Tumpukan Pemantauan
- Opsi Verifikasi Driver Baru untuk Verifikasi DMA (juga dikenal sebagai Verifikasi HAL), Deteksi Kebuntuan, dan Verifikasi SCSI
- Perubahan Verifikasi I/O yang menggabungkan pengujian "Tingkat 1" dan "Tingkat 2", uji Verifikasi I/O opsional yang Ditingkatkan
- Ekstensi debugger baru !deadlock dan !dma
- Pemeriksaan bug baru: 0xE6 (DRIVER_VERIFIER_DMA_VIOLATION) dan 0xF1 (SCSI_VERIFIER_DETECTED_VIOLATION)
- Subkode tambahan untuk kode pemeriksaan bug yang ada 0xC4 dan 0xC9
Fitur Driver Verifier juga meliputi:
Opsi baris perintah Pemverifikasi Baru Utilitas verifier.exe memiliki parameter baru, VolatileDriverList, yang dapat digunakan dengan kata kunci /adddriver untuk menentukan daftar driver yang akan ditambahkan ke pengaturan volatil. VolatileDriverList dapat digunakan dengan kata kunci /removedriver untuk menentukan daftar driver yang akan dihapus.
Ekstensi !verifier baru Ekstensi !verifier baru menampilkan informasi log tambahan saat memantau sumber daya rendah atau IRQL menaikkan dan memutar kunci. Bantuan online juga tersedia.
- Bendera yang diatur dengan 0x4 menyebabkan tampilan menyertakan log kesalahan yang disuntikkan oleh Driver Verifier selama simulasi sumber daya rendah
- Bendera yang diatur dengan 0x8 menyebabkan tampilan menyertakan log perubahan IRQL terbaru yang dibuat oleh driver yang sedang diverifikasi
- Jika Bendera sama persis dengan 0x4 atau 0x8, parameter Kuantitas menentukan jumlah rekaman atau entri log yang akan disertakan dalam tampilan
- Parameter ? menunjukkan teks bantuan singkat
Bantuan Online untuk Driver Verifier Manager Online Help for Driver Verifier Manager dapat ditampilkan dengan salah satu cara berikut:
- Pilih dan tahan (atau klik kanan) item di jendela Manajer Pemverifikasi Driver dan pilih Apa Ini? dari menu pop-up.
- Pilih tanda tanya (?) di sudut kanan atas jendela lalu pilih item di jendela Driver Verifier Manager.