Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Anda dapat menggunakan konfigurasi berikut untuk men-debug driver User-Mode Driver Framework (UMDF) selama pengembangan. Semua konfigurasi melibatkan dua komputer, host, dan target.
- Salin driver secara manual ke tujuan. Lakukan debugging mode pengguna pada target. Dalam skenario ini, Anda menghubungkan secara manual ke instans proses host driver yang berjalan pada target.
- Salin driver secara manual ke tujuan lalu lakukan pemecahan masalah mode kernel dari host.
Sebaiknya lakukan semua pengujian dan pengembangan driver UMDF dengan debugger kernel yang terpasang.
Praktik Terbaik
Sebaiknya lakukan semua pengujian driver UMDF dengan debugger kernel yang terpasang.
Pengaturan berikut disarankan. Anda dapat mengatur pengaturan ini secara manual, atau menggunakan alat WDF Verifier Control Application (WDFVerifier.exe) di WDK untuk melihat atau mengubah pengaturan ini.
Aktifkan Pemverifikasi Aplikasi di WUDFHost.exe:
AppVerif –enable Heaps Exceptions Handles Locks Memory TLS Leak –for WudfHost.exeJika pengecualian terjadi, Pemverifikasi Aplikasi mengirimkan pesan diagnostik ke debugger dan masuk.
Jika Anda menggunakan sesi debugging mode kernel, atur HostFailKdDebugBreak sehingga reflektor masuk ke debugger mode kernel sebelum mengakhiri proses host driver. Pengaturan ini diaktifkan secara default mulai dari Windows 8.
Nonaktifkan pengumpulan dengan mengatur UmdfHostProcessSharing ke ProcessSharingDisabled. Untuk informasi, lihat Menentukan Arahan WDF dalam File INF.
Secara default, ketika perangkat UMDF gagal, kerangka kerja mencoba memulai ulang hingga lima kali. Anda dapat menonaktifkan mulai ulang otomatis dengan mengatur DebugModeFlags ke 0x01. Untuk informasi selengkapnya, lihat Nilai Registri untuk Debugging Driver WDF.
Reboot komputer Anda.
Untuk memecahkan masalah driver UMDF, tinjau Menentukan Mengapa Reflektor Menghentikan Proses Host dan Men-debug kerusakan driver UMDF
Menggunakan WinDbg untuk menghubungkan secara manual (debugging mode pengguna)
Pada komputer target, Anda dapat melampirkan WinDbg secara manual ke instans WUDFHost yang menghosting driver. Saat melampirkan, Anda masuk ke debugger dan Anda dapat mengatur titik henti di driver Anda.
Karena inisialisasi driver terjadi segera setelah WUDFHost dimuat, Anda tidak dapat melampirkan secara manual tepat waktu untuk men-debug kode inisialisasi. Sebagai gantinya, atur nilai registri untuk menyebabkan proses host menunggu beberapa detik pada inisialisasi host atau waktu muat driver. Penundaan ini memberi Anda waktu untuk menyambungkan WinDbg ke instans proses WUDFHost yang benar.
Ikuti langkah-langkah ini:
- Dalam registri pada komputer target, atur HostProcessDbgBreakOnStart atau HostProcessDbgBreakOnDriverLoad ke beberapa detik dan boot ulang.
- Pada komputer target, buka WinDbg sebagai Administrator.
- Pada menu File , pilih Lampirkan ke Proses. Pilih Menurut Executable, dan temukan semua proses yang diberi nama WUDFHost.exe (mungkin tidak ada). Jika ada proses bernama WUDFHost.exe, tuliskan pengidentifikasi proses mereka untuk referensi di masa mendatang.
- Di Manajer Perangkat, aktifkan driver.
- Ulangi langkah 2 dan cari instance WUDFHost.exeyang baru. Jika Anda tidak melihat instans baru WUDFHost.exe, pilih Batal, dan pilih Lampirkan ke Proses lagi. Saat Anda menemukan instans baru WUDFHost.exe, pilih, dan pilih OK.
Jika kumpulan perangkat sedang digunakan dan Anda mengatur nilai registri HostProcessDbgBreakOnDriverLoad , Anda mungkin melihat kerusakan debugger karena pemuatan driver lain. Anda dapat menonaktifkan pengelompokan perangkat dengan menggunakan mode debug pada UMDF.
Untuk menggunakan mode debug, gunakan opsi F5 di Visual Studio, atau atur nilai DebugModeFlags dan DebugModeBinaries di registri.
Untuk informasi terperinci tentang nilai registri UMDF, lihat Nilai Registri untuk Debug Driver WDF (KMDF dan UMDF).
Menggunakan WinDbg untuk debugging jarak jauh dari komputer host (penelusuran kesalahan mode kernel)
Dari host jarak jauh, mulai sesi debugging mode kernel. Kemudian atur proses saat ini ke instans Wudfhost yang menghosting driver Anda. Jika Anda melakukan debugging dari debugger kernel jarak jauh, tetapkan HostProcessDbgBreakOnDriverStart atau HostProcessDbgBreakOnDriverLoad ke 0x80000000 untuk menentukan tidak ada batas waktu dan masuk ke debugger kernel.
Gunakan langkah-langkah berikut:
Nonaktifkan pembagian. Aktifkan DebugModeFlags dan cantumkan driver Anda di DebugModeBinaries.
Jika driver Anda menggunakan UMDF 1.11 atau yang lebih baru, HostFailKdDebugBreak diaktifkan secara default. Lewati langkah ini.
Jika driver Anda menggunakan UMDF 1.9 atau yang lebih lama, atur HostFailKdDebugBreak ke 1.
Jika Anda men-debug masalah yang terkait dengan batas waktu, nonaktifkan HostProcessDbgBreakOnDriverStart dan HostProcessDbgBreakOnDriverLoad. (Ketika HostProcessDbgBreakOnDriverStart atau HostProcessDbgBreakOnDriverLoad bukan nol, kerangka kerja menonaktifkan batas waktu sehingga reflektor tidak mengakhiri host saat debugger mode pengguna dilampirkan ke proses host.) Jika Anda perlu men-debug kode inisialisasi driver, alih-alih menggunakan dua nilai ini, coba keluarkan perintah berikut di WinDbg sebelum driver Anda memuat: sxe ld:MyDriver.dll (putus pada beban modul)
Reboot jika Anda membuat perubahan registri.
Bergantung pada pilihan yang Anda buat di langkah-langkah sebelumnya, debugger kernel jarak jauh Anda berhenti saat driver memuat atau membongkar pada target.