DRIVER_PNP_WATCHDOG Mavi Ekran Yanılgısı Nasıl Çözülür?

Daha evvel DRIVER_POWER_STATE_FAILURE mavi ekran kusurunun nasıl çözüneceğine bakmıştık. Bu rehberde daha da ayrıntıya inip DRIVER_PNP_WATCHDOG mavi ekran kusurunu çözeceğiz.

Birinci olarak bu mavi ekran kusur kodu, bir şoförün belli bir mühlet içinde bir PnP sürecini tamamlayamadığını gösterir. Probleme sebep olan sürücüyü tespit etmek için de Minidump belgesine gereksinimimiz var. Bu belgeleri tahlil etmek için WinDbg Preview adlı yazılımdan faydalanacağız. Eğer minidump dosyasını açarken erişim müsaadesi sorunu yaşıyorsanız dosya sahipliğini almanız gerekmekte. Bunu da belirtmemizde yarar var.

Her şeyden evvel, daha evvelki rehberlerimizde de anlattığımız üzere belgeyi tahlil etmeye !analyze -v komutuyla başlıyoruz. Komut sonrası çıktıda bizi DRIVER_PNP_WATCHDOG başlığı ve öbür ayrıntılar karşılıyor.

******************************************************************************* * * * Bugcheck Analysis * * * ******************************************************************************* DRIVER_PNP_WATCHDOG (1d5) A driver has failed to complete a Pnp operation within a specific time. Arguments: Arg1: 0000006900630070, First few character of the service associated with the devnode. Arg2: ffffd80a692fb710, Pointer to the nt!TRIAGE_PNP_WATCHDOG on Win10 RS4 and higher. Arg3: ffffc807e0470140, Thread responsible for the Pnp Watchdog. Arg4: 0000000000057e4c, Milliseconds elapsed since the watchdog was armed. Debugging Details: —————— Implicit thread is now ffffc807`e0470140 *** WARNING: Unable to verify timestamp for win32k.sys KEY_VALUES_STRING: 1 Key : Analysis.CPU.mSec Value: 9578 Key : Analysis.DebugAnalysisManager Value: Create Key : Analysis.Elapsed.mSec Value: 17212 Key : Analysis.Init.CPU.mSec Value: 952 Key : Analysis.Init.Elapsed.mSec Value: 3554 Key : Analysis.Memory.CommitPeak.Mb Value: 79 Key : WER.OS.Branch Value: co_release Key : WER.OS.Timestamp Value: 2021-06-04T16:28:00Z Key : WER.OS.Version Value: 10.0.22000.1 FILE_IN_CAB: setupmem.dmp BUGCHECK_CODE: 1d5 BUGCHECK_P1: 6900630070 BUGCHECK_P2: ffffd80a692fb710 BUGCHECK_P3: ffffc807e0470140 BUGCHECK_P4: 57e4c FAULTING_THREAD: ffffc807e0470140 BLACKBOXBSD: 1 (!blackboxbsd) BLACKBOXNTFS: 1 (!blackboxntfs) BLACKBOXPNP: 1 (!blackboxpnp) BLACKBOXWINLOGON: 1 PROCESS_NAME: System LOCK_ADDRESS: fffff8020e445f20 — (!locks fffff8020e445f20) Resource @ nt!PiEngineLock (0xfffff8020e445f20) Exclusively owned Contention Count = 46 NumberOfExclusiveWaiters = 2 Threads: ffffc807e0470140-01 Threads Waiting On Exclusive Access: ffffc807e03ba080 ffffc807f100b0c0 1 total locks PNP_TRIAGE_DATA: Lock address : 0xfffff8020e445f20 Thread Count : 1 Thread address: 0xffffc807e0470140 Thread wait : 0x5f89 STACK_TEXT: ffffd80a`693e21a0 fffff802`0da5dc17 : fffff802`00000000 00000000`00000000 00000000`00000600 ffffc807`df010000 : nt!KiSwapContext+0x76 ffffd80a`693e22e0 fffff802`0da5fac9 : ffffc807`00000000 00000000`0000001e ffffd80a`693e24f8 00000000`00000000 : nt!KiSwapThread+0x3a7 ffffd80a`693e23c0 fffff802`0da8a9e1 : 00000000`00000000 fffff802`00000000 00000000`0000006a 00000000`f5a9df12 : nt!KiCommitThreadWait+0x159 ffffd80a`693e2460 fffff802`0de8b449 : ffffdc00`aabdbda0 ffffdc00`00000000 ffffdc00`aabdbda0 ffffdc00`aa9885a0 : nt!KeWaitForMultipleObjects+0x2b1 ffffd80a`693e2560 fffff802`0dfd90b8 : 00000000`00000000 ffffdc00`aa988500 00000000`00000000 ffffffff`ee1e5d00 : nt!PiUEventNotifyUserMode+0x285 ffffd80a`693e25f0 fffff802`0e15c746 : ffffdc00`aadfbd20 ffffdc00`aa9885a0 ffffdc00`aadfbd20 ffffd80a`693e28c8 : nt!PnpNotifyUserModeDeviceRemoval+0xc4 ffffd80a`693e2800 fffff802`0e0ef3a4 : 00000000`00000000 00000000`00000000 ffffd80a`693e28e9 00000000`00000000 : nt!PiProcessQueryAndCancelRemoval+0x15a ffffd80a`693e2870 fffff802`0dfd73e5 : ffffd80a`693e29b0 ffffc807`e3f2d800 ffffc807`ee702900 ffffdc00`0000002d : nt!PnpProcessQueryRemoveAndEject+0x119ddc ffffd80a`693e2950 fffff802`0de662b5 : ffffdc00`a9ddc9c0 ffffdc00`aacaa990 ffffc807`e02abc00 00000000`00000000 : nt!PnpProcessTargetDeviceEvent+0x109 ffffd80a`693e2980 fffff802`0da48aaf : ffffc807`e02abcd0 ffffc807`e0470140 ffffc807`ee7029d0 fffff802`00000000 : nt!PnpDeviceEventWorker+0x2c5 ffffd80a`693e2a00 fffff802`0db5b615 : ffffc807`e0470140 ffffb701`8c520000 ffffc807`e0470140 00000000`00000000 : nt!ExpWorkerThread+0x14f ffffd80a`693e2bf0 fffff802`0dc16c24 : ffffb701`8c510180 ffffc807`e0470140 fffff802`0db5b5c0 00000000`00000000 : nt!PspSystemThreadStartup+0x55 ffffd80a`693e2c40 00000000`00000000 : ffffd80a`693e3000 ffffd80a`693dd000 00000000`00000000 00000000`00000000 : nt!KiStartSystemThread+0x34 STACK_COMMAND: .thread 0xffffc807e0470140 ; kb SYMBOL_NAME: nt!KiSwapContext+76 MODULE_NAME: nt IMAGE_NAME: ntkrnlmp.exe IMAGE_VERSION: 10.0.22000.176 BUCKET_ID_FUNC_OFFSET: 76 FAILURE_BUCKET_ID: 0x1D5_nt!KiSwapContext OS_VERSION: 10.0.22000.1 BUILDLAB_STR: co_release OSPLATFORM_TYPE: x64 OSNAME: Windows 10 FAILURE_ID_HASH: {3ada5172-33ef-c5a1-2a56-a080946d38c5} Followup: MachineOwner ———

Akabinde her vakit yaptığımız üzere komut kısmına lm yazıyoruz. Kısaca tanımlamak gerekirse, lm komutu tüm modülleri ve her modül için sembollerin durumunu listeler. Burada komut, yüklenen modüller ve yüklenmeyen modüller olarak iki liste halinde sonuç sunar. Yüklenmeyen modüller her vakit olmamakla bir arada birçok vakit sorunun kaynağını bize sunar.

Aşağıda lm komutunun yüklenmeyen modüllerin çıktısı yer almakta ve burada olağanda görünenin dışında birkaç SYS belgesi bulunmakta.

Unloaded modules: fffff802`0ad70000 fffff802`0ae88000 aqnic650.sys fffff802`1f940000 fffff802`1f96d000 HDAudBus.sys fffff802`1f970000 fffff802`1f9e2000 portcls.sys fffff802`1f9f0000 fffff802`1fa12000 drmk.sys fffff802`135f0000 fffff802`13622000 storahci.sys fffff802`1fad0000 fffff802`1fae2000 kbdhid.sys fffff802`1fb10000 fffff802`1fb21000 mouhid.sys fffff802`0a920000 fffff802`0a92c000 AMDPCIDev.sy fffff802`0aeb0000 fffff802`0afcd000 e3xw10x64.sy fffff802`0b280000 fffff802`0b296000 ipt.sys fffff802`205d0000 fffff802`205df000 dump_storpor fffff802`1f640000 fffff802`1f675000 dump_stornvm fffff802`1f6a0000 fffff802`1f6be000 dump_dumpfve fffff802`1fa30000 fffff802`1fa3d000 amdgpio2.sys fffff802`1fa40000 fffff802`1fa72000 msgpioclx.sy fffff802`20500000 fffff802`2051f000 dam.sys fffff802`20520000 fffff802`2052f000 KMPDC.sys fffff802`203d0000 fffff802`20465000 csc.sys fffff802`11de0000 fffff802`11df2000 WdBoot.sys fffff802`14860000 fffff802`14872000 hwpolicy.sys

Burada yer alan SYS evraklarını internette araştırdığımızda Wi-Fi modülüne ait bir sonuç çıktı çünkü aqnic650.sys ve e3xw10x64.sys evrakları ağ şoförüne ilişkin. Bu usul bilgileri de SYS belge ismini internette araştırarak edinebilirsiniz. Şimdilik şüphelimiz ağ şoförü ama emin olmak ismine tahlile devam edelim.

Görüldüğü üzere minidumpta çok da ayrıntı sunulmamakta. O halde Microsoft’un Bug Check 0x1D5: DRIVER_PNP_WATCHDOG makalesine bir göz atalım zira bu bizim aldığımız mavi ekran kusuruyla alakalı ayrıntılı bilgi edinebileceğimiz bir makale.

Makalede cause yani neden kısmında bize ayrıntılı tahlil yoluyla alakalı bilgi sunulmakta. Buna göre makalede yer alan neden kısmına bir göz atalım. Burada bize “Bu, bir şoförün belli bir müddet içinde bir PnP işlemini tamamlayamadığını gösterir.” denmekte.

Kısaca PnP’den bahsetmek gerekirse; Plug and Play’in kısaltmasıdır, Tak ve Çalıştır manasına gelmektedir. Windows’un donanım değişikliklerine ahenk sağlamasını sağlayan bir yapı olarak da tanımlayabiliriz. Örneğin bir kullanıcı takacağı bir USB fareyi el ile yapılandırmadan Windows’un gerekli kurulumlarını yapmasını bekledikten sonra fareyi kullanabilir.

Microsoft bize burada PnP sürecinin tamamlanamadığını belirttiğinden biz de yanlışın kaynağı olan PnP aygıtını !blackbox pnp komutuyla bulacağız.

Bu komut, bir minidump evrakının oluşturulması sırasında yakalanabilecek PnP aygıtları hakkında bilgileri imajlar. Ekseriyetle yanılgının kaynağı konusunda fikir sahibi olmamızı sağlar. Aşağıda az evvel tahlil ettiğimiz minidump evrakının !blackbox pnp çıktısı yer almakta.

PnpActivityId : {00000000-0000-0000-0000-000000000000} PnpActivityTime : 132774097103997317 PnpEventInformation: 0 PnpEventInProgress : 1 PnpProblemCode : 21 PnpVetoType : 0 DeviceId : PCIVEN_1022&DEV_1483&SUBSYS_7C341462&REV_003&11583659&0&0A VetoString :

Gördüğünüz üzere DeviceId kısmında bir donanım kimliği yazmakta. Bu donanım kimliğinin internette yaptığımız araştırmalar sonucu yonga seti denetiminde olan bir PCI aygıtına işaret ettiğini görmekteyiz. Yani PCI arayüzünü kullanan bir aygıt bu yanlışın nedeni.

Artık burada direkt kablosuz ağ kartını tespit edemiyoruz lakin HWInfo ile baktığımızda ağ kartının bu PCIe denetimcisine bağlı olduğunu görebiliyoruz.

HWInfo ile hangi donanımın hangi PCIe kontrolcüye bağlı olduğunu tespit edebilirsiniz.

Ayrıyeten çıktıda gördüğünüz üzere PnpProblemCode: 21 yazıyor. Bu kodların tariflerine Microsoft’un Aygıt Yöneticisi yanılgı iletileri makalesinde ayrıntılı formda erişebilirsiniz. Bizim kodumuza nazaran gerekli makaleye girdikten sonra tavsiye edilen tahlil yolu olarak sistemi tekrar başlatmamızı tavsiye etmiş Microsoft. Doğal ki sistemi tekrar başlatmak sorunu çözmek için kâfi olmadı.

Tahlil

Wi-Fi kartını devre dışı bıraktıktan sonra hem Windows güncellemesi meselesiz çalışıyor hem de macOS altındaki kilitlenme meseleleri ortadan kalkıyor. Zati lm komutunda bulduğumuz ayrıntılar bizi bu kanıya sürüklemişti ancak donanım kimliğiyle sorunun kaynağını daha düzgün tespit etmiş bulunmaktayız.

Bir sorun daha böylece tahlile kavuşmuş bulunmakta. Bir meseleniz olursa Technopat Sosyal’de Mavi Ekran Kusur Analizi kategorisinde siz de kendi bahsinizi oluşturabilir ve üyelerimizden teknik dayanak alabilirsiniz. Meselesiz günler dileriz.

Author: admin