Bagikan melalui


Menentukan Mengapa Reflektor Menghentikan Proses Host

Topik ini menjelaskan bagaimana Anda dapat menganalisis mengapa reflektor menghentikan proses host driver (WUDFHost.exe) atau mengapa proses host driver mengalami crash.

Alasan paling umum bagi reflektor untuk mengakhiri proses host adalah kedaluwarsa batas waktu proses host UMDF.

Kami sangat menyarankan untuk melakukan semua pengembangan dan pengujian driver UMDF Anda dengan debugger kernel yang melekat pada sistem pengujian dan mengaktifkan Pemverifikasi Aplikasi (AppVerif.exe) pada WUDFHost.exe. Gunakan perintah berikut, lampirkan debugger kernel lalu boot ulang.

AppVerif –enable Heaps Exceptions Handles Locks Memory TLS Leak –for WudfHost.exe

Menggunakan File Cadangan

Ketika driver UMDF Anda mengalami crash atau mengalami masalah, jeda akan dilaporkan dalam debugger kernel. Masalah ini harus di-debug ketika pengecualian mode pengguna dilaporkan dalam debugger kernel. Jeda debugger kernel juga dilaporkan oleh WudfRd.sys sebelum mengakhiri proses host driver karena driver UMDF yang bermasalah (tidak responsif). Anda juga akan menemukan log dan heap dump yang dilaporkan di lokasi berikut. Untuk meninjau file cadangan yang diambil oleh UMDF, ikuti langkah-langkah berikut:

  1. Temukan file .dmp terbaru di direktori %ProgramData%\Microsoft\WDF. Sebelum UMDF 2.15 yang dikirim dengan Windows 10 1507, direktori log berada di bawah %windir%\system32\LogFiles\WUDF.

  2. Muat file .dmp terbaru ke debugger dengan menggunakan perintah berikut:

    WinDbg -z <path to the .dmp file>
    
  3. Lihat keadaan utas pada saat penghentian.

Jika Anda memerlukan heap dump yang diambil, pada saat pengujian, atur nilai registri berikut dan boot ulang sistem pengujian Anda sebelum menjalankan pengujian. Anda juga dapat memeriksa riwayat Pelaporan Galat Windows dari log peristiwa aplikasi sistem di %SystemRoot%\System32\Winevt\Logs\Application.evtx

reg add "HKLM\Software\Microsoft\windows NT\CurrentVersion\Wudf" /v LogMinidumpType /t REG_DWORD /d 0x1122
reg add "HKLM\Software\Microsoft\windows NT\CurrentVersion\Wudf" /v LogEnable /t REG_DWORD /d 1 

Menggunakan Debugger

Dalam kasus lain, Anda mungkin perlu melampirkan ke target mode kernel langsung untuk menentukan mengapa reflektor menghentikan proses host. Untuk menyiapkan sesi penelusuran kesalahan Anda, ikuti langkah-langkah yang dijelaskan dalam Cara Mengaktifkan Debugging Driver UMDF.

Setelah Anda membuat koneksi, gunakan !wdfkd.wdfumtriage untuk memeriksa driver UMDF, tampilkan IRP yang luar biasa dengan menggunakan ekstensi debugger UMDF !wdfkd.wdfumirps (!wudfext.umirps untuk UMDF versi 1).

  • Jika IRP PnP atau IRP daya tertunda, tentukan mengapa driver menyebabkan IRP macet dengan memeriksa utas dalam proses host.

    Anda dapat menggunakan ekstensi !process untuk memeriksa utas yang berjalan dalam proses host. Nilai bendera 0x1f menunjukkan pelacakan tumpukan untuk setiap utas.

    !process<process addr>0x1f

  • Jika driver Anda belum menyelesaikan IRP yang dibatalkan dengan cepat, tentukan IRP mana yang dibatalkan dan mengapa belum selesai.

  • Jika pembersihan atau penutupan IRP tertunda, tentukan mengapa IRP membutuhkan waktu lama untuk diproses.