Daha önce DRIVER_POWER_STATE_FAILURE mavi ekran hatasının nasıl çözüneceğine bakmıştık. Bu rehberde daha da detaya inip DRIVER_PNP_WATCHDOG mavi ekran hatasını çözeceğiz.
İlk olarak bu mavi ekran hata kodu, bir sürücünün belirli bir süre içinde bir PnP işlemini tamamlayamadığını gösterir. Soruna sebep olan sürücüyü tespit etmek için de Minidump dosyasına ihtiyacımız var. Bu dosyaları analiz etmek için WinDbg Preview adlı yazılımdan faydalanacağız. Eğer minidump dosyasını açarken erişim izni sorunu yaşıyorsanız dosya sahipliğini almanız gerekmekte. Bunu da belirtmemizde fayda var.
Her şeyden önce, daha önceki rehberlerimizde de anlattığımız gibi dosyayı analiz etmeye !analyze -v
komutuyla başlıyoruz. Komut sonrası çıktıda bizi DRIVER_PNP_WATCHDOG başlığı ve diğer detaylar 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 ---------
lm
komutu nedir?
Ardından her zaman yaptığımız gibi 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 zaman olmamakla beraber çoğu zaman sorunun kaynağını bize sunar.
Aşağıda lm
komutunun yüklenmeyen modüllerin çıktısı yer almakta ve burada normalde görünenin dışında birkaç SYS dosyası 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 dosyalarını internette araştırdığımızda Wi-Fi modülüne ilişkin bir sonuç çıktı zira aqnic650.sys
ve e3xw10x64.sys
dosyaları ağ sürücüsüne ait. Bu tarz bilgileri de SYS dosya adını internette araştırarak edinebilirsiniz. Şimdilik şüphelimiz ağ sürücüsü fakat emin olmak adına analize devam edelim.
Görüldüğü üzere minidumpta çok da detay 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 hatasıyla alakalı detaylı bilgi edinebileceğimiz bir makale.
Makalede cause yani neden kısmında bize detaylı çözüm yoluyla alakalı bilgi sunulmakta. Buna göre makalede yer alan neden kısmına bir göz atalım. Burada bize “Bu, bir sürücünün belirli bir süre içinde bir PnP işlemini tamamlayamadığını gösterir.” denmekte.
PnP (Plug and Play) nedir?
Kısaca PnP’den bahsetmek gerekirse; Plug and Play’in kısaltmasıdır, Tak ve Çalıştır anlamına gelmektedir. Windows’un donanım değişikliklerine uyum 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 işleminin tamamlanamadığını belirttiğinden biz de hatanın kaynağı olan PnP aygıtını !blackbox pnp
komutuyla bulacağız.
!blackbox pnp
komutu nedir?
Bu komut, bir minidump dosyasının oluşturulması sırasında yakalanabilecek PnP cihazları hakkında bilgileri görüntüler. Genellikle hatanın kaynağı konusunda fikir sahibi olmamızı sağlar. Aşağıda az önce analiz ettiğimiz minidump dosyası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 : PCI\VEN_1022&DEV_1483&SUBSYS_7C341462&REV_00\3&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 kontrolünde olan bir PCI aygıtına işaret ettiğini görmekteyiz. Yani PCI arayüzünü kullanan bir aygıt bu hatanın nedeni.
Şimdi burada doğrudan kablosuz ağ kartını tespit edemiyoruz fakat HWInfo ile baktığımızda ağ kartının bu PCIe kontrolcüsüne bağlı olduğunu görebiliyoruz.
Ayrıca çıktıda gördüğünüz üzere PnpProblemCode: 21
yazıyor. Bu kodların tanımlarına Microsoft’un Aygıt Yöneticisi hata mesajları makalesinde detaylı şekilde erişebilirsiniz. Bizim kodumuza göre gerekli makaleye girdikten sonra tavsiye edilen çözüm yolu olarak sistemi yeniden başlatmamızı tavsiye etmiş Microsoft. Tabii ki sistemi yeniden başlatmak sorunu çözmek için yeterli olmadı.
Çözüm
Wi-Fi kartını devre dışı bıraktıktan sonra hem Windows güncellemesi sorunsuz çalışıyor hem de macOS altındaki kilitlenme sorunları ortadan kalkıyor. Zaten lm
komutunda bulduğumuz detaylar bizi bu düşünceye sürüklemişti fakat donanım kimliğiyle sorunun kaynağını daha iyi tespit etmiş bulunmaktayız.
Bir sorun daha böylelikle çözüme kavuşmuş bulunmakta. Bir sorununuz olursa Technopat Sosyal’de Mavi Ekran Hata Analizi kategorisinde siz de kendi konunuzu oluşturabilir ve üyelerimizden teknik destek alabilirsiniz. Sorunsuz günler dileriz.