Windows menghentikan kesilapan THREAD_STUCK_IN_DEVICE_DRIVER

Mesej ralat THREAD_STUCK_IN_DEVICE_DRIVER berlaku apabila pemandu peranti terjebak dalam gelung tak terhingga, menunggu perkakasan yang berkaitan untuk menjadi terbiar.

Isu ini sering adalah hasil daripada masalah perkakasan atau masalah dengan pemandu peranti yang cuba memprogram perkakasan. Kesalahan ini berlaku lebih kerap dengan kad video atau kad video yang rosak.

Penyelesaian pengguna akhir

Sekiranya anda seorang pengguna akhir (tidak membangunkan pemandu) dan menghadapi ralat ini, semak mana-mana pemandu yang dikemas kini untuk peranti anda. Sekiranya tiada pemandu yang dikemas kini dan tiada perkakasan baru telah ditambahkan, adalah selamat untuk menganggap bahawa perkakasan dalam komputer telah gagal dan harus diganti.

Penyelesaian pembangun

Sekiranya anda pemaju pemandu, atau cuba debug masalah ini, gunakan perintah .thread ( Set Konteks Konteks ). Kemudian, untuk mencari di mana benang terjebak, gunakan perintah kb ( Paparan Stack Backtrace ).

Ia mungkin untuk menggunakan maklumat dalam debugger untuk menyelesaikan masalah ini juga. DbgBreakPoint akan dipanggil apabila ralat berlaku jika debugger kernel telah berjalan ketika Windows mengesan keadaan ralat atau masa keluar. Dalam kes ini, KeBugCheckEx tidak akan dipanggil dan menggunakan perintah .bugcheck ( Display Bug Check Data ) tidak akan mengandungi apa-apa maklumat yang berguna (jika ada maklumat sama sekali).

Debugger akan menyertakan maklumat yang serupa dengan parameter di atas. Anda masih boleh melihat empat parameter dengan mengambilnya dari pembolehubah global Watchdog dengan menggunakan salah satu daripada dua arahan, bergantung kepada sistem pengendalian.

  • Sistem 32-bit: pengawas dd! G_WdBugCheckData L5
  • Sistem 64-bit: pengawas dq! G_WdBugCheckData L5

Dengan menggunakan kaedah interaktif ini untuk mengepam ralat, anda boleh mencari thread yang menyebabkan ralat, menetapkan titik putus dalam benang dan kemudian gunakan perintah g (Go) untuk debug kod gelung.