Menggunakan Pemverifikasi UMDF
Kerangka kerja ini menyediakan fungsionalitas verifikasi bawaan yang dapat Anda gunakan untuk menguji driver Kerangka Kerja Driver Mode Pengguna (UMDF) yang sedang berjalan. Fungsionalitas ini, kadang-kadang disebut Pemverifikasi UMDF, secara ekstensif memvalidasi status driver Anda dan argumen yang diteruskan driver ke metode objek kerangka kerja. Anda dapat menggunakan Pemverifikasi UMDF dengan sendirinya atau bersama dengan alat Pemverifikasi Aplikasi (AppVerif.exe) tujuan umum.
Pemverifikasi UMDF memeriksa akuisisi kunci dan hierarki, memverifikasi pembatalan I/O dan penggunaan antrean yang benar, dan memastikan bahwa driver dan kerangka kerja mengikuti kontrak yang didokumenkan.
Pemverifikasi UMDF menyebabkan kegagalan dalam kode driver UMDF untuk memeriksa bug proses host. Namun, pemeriksaan bug UMDF tidak menyebabkan layar teks biru muncul dengan informasi tentang kesalahan tersebut. Sebagai gantinya, pemeriksaan bug UMDF:
Membuat file cadangan memori dan menyimpan file ke direktori file log komputer (misalnya, %windir%\System32\LogFiles\WUDF\Xxx.dmp).
Catatan Dimulai di UMDF 2.15, direktori log adalah %ProgramData%\Microsoft\WDF.
Membuat laporan kesalahan untuk Microsoft (ikut serta).
Memecah ke debugger jika dilampirkan ke komputer.
Menghentikan proses host dan menonaktifkan perangkat.
Mulai dari UMDF 2.0, Pemverifikasi UMDF mengeluarkan titik henti dalam beberapa kasus, dan menyebabkan pemeriksaan bug UMDF di orang lain. Perilaku ini mirip dengan KMDF Verifier.
Kami sangat menyarankan untuk melakukan semua pengembangan dan pengujian driver Anda setelah mengaktifkan Application Verifier (AppVerif.exe) pada WUDFHost.exe. Gunakan perintah berikut, lampirkan debugger lalu boot ulang.
AppVerif -enable Heaps Exceptions Handles Locks Memory TLS Leak -for WudfHost.exe
Mulai versi 2.0 UMDF, jika Anda menjalankan Application Verifier pada proses host driver (Wudfhost), UMDF Verifier secara otomatis diaktifkan untuk semua driver UMDF 2.0 di host tersebut, serta semua driver UMDF 2.0 dalam proses host driver di masa mendatang.
Di UMDF 1.11 dan yang lebih lama, pemverifikasi kerangka kerja selalu aktif dan Anda tidak dapat menonaktifkannya.
Mengaktifkan dan Menonaktifkan Pemverifikasi UMDF
Anda dapat mengaktifkan Pemverifikasi UMDF secara manual dengan mengatur VerifierOn ke nilai bukan nol di subkunji Parameters\Wdf driver dari kunci registri nama HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WUDF\Services\<driver name>.
Perhatikan Keberadaan nilai VerifierOn sama sekali, bahkan diatur ke nol, mengambil alih tautan dengan Pemverifikasi Aplikasi. Akibatnya, sebaiknya hapus nilai jika Anda tidak memaksanya, daripada mengaturnya ke nol.
Untuk menentukan apakah Pemverifikasi UMDF diaktifkan, atur titik henti di lokasi setelah driver Anda memanggil WdfDriverCreate dan gunakan perintah ekstensi debugger !wdfdriverinfo:
!wdfkd.wdfdriverinfo <nama **** >driver Anda 0x1
Untuk informasi selengkapnya tentang perintah ekstensi debugger, lihat Ekstensi Debugger untuk Driver berbasis Kerangka Kerja.
Mengontrol Perilaku Pemverifikasi
Anda dapat mengontrol perilaku Pemverifikasi UMDF dengan memodifikasi nilai dalam registri. Atau, Anda dapat menggunakan aplikasi kontrol WDF Verifier untuk mengatur nilai-nilai ini.
Nilai registri berikut dapat digunakan dengan UMDF 1.driver x , serta driver UMDF 2.0 dan yang lebih baru.
VerifyDownLevel (REG_DWORD)
Jika VerifyDownLevel diatur ke nilai bukan nol, dan jika driver dibuat dengan versi kerangka kerja yang lebih lama dari versi saat ini, pemverifikasi kerangka kerja menyertakan pengujian yang ditambahkan setelah driver dibuat. Jika nilai ini tidak ada atau diatur ke nol, pemverifikasi kerangka kerja hanya menyertakan pengujian yang ada saat driver dibangun.
Misalnya, jika driver Anda dibangun dengan versi 1.7 dari kerangka kerja, dan jika versi 1.9 kerangka kerja diinstal di komputer, pengaturan VerifyDownLevel ke nonzero menyebabkan pemverifikasi menyertakan pengujian yang ditambahkan ke versi 1.9 dari pemverifikasi saat driver Anda berjalan.
Nilai ini terletak di subkuntah Parameters\Wdf dari kunci registri HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WUDF\Services\DriverName .
TrackObjects (REG_DWORD)
Jika TrackObjects diatur ke nilai bukan nol, kerangka kerja memasukkan debugger saat driver dibongkar, jika ada objek berbasis kerangka kerja yang bocor (tidak dihapus).
Selama pengujian reguler, Anda harus mengaktifkan TrackObjects dan bukan TrackRefCounts. Jika pemverifikasi melaporkan bahwa driver membocorkan objek kerangka kerja, gunakan aplikasi kontrol untuk mengaktifkan opsi pemverifikasi TrackRefCounts .
Nilai ini terletak di subkuntah DefaultHostProcessGuid dari kunci registri HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WUDF\Services, di mana DefaultHostProcessGuid adalah nilai yang dapat Anda temukan di subkuntang HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WUDF.
TrackRefCounts (REG_DWORD)
Jika TrackRefCounts diatur ke nilai bukan nol, kerangka kerja mempertahankan hitungan jumlah referensi ke setiap objek berbasis kerangka kerja. Anda dapat menggunakan ekstensi debugger !wudfrefhist untuk melihat perubahan jumlah referensi objek.
Mengatur TrackRefCounts ke nilai bukan nol menurunkan performa driver, jadi Anda harus meninggalkan nilai pada nol kecuali Anda men-debug bug penghapusan objek.
Nilai ini terletak di subkuntah DefaultHostProcessGuid dari kunci registri HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WUDF\Services, di mana DefaultHostProcessGuid adalah nilai yang dapat Anda temukan di subkuntang HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WUDF.
Selain nilai registri yang tercantum di atas, driver UMDF 2.0 dan yang lebih baru juga dapat menggunakan banyak nilai registri yang tercantum dalam Menggunakan PEMverifikasi KMDF.