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.




Guzel ve aciklayici bir anlatim, ellerine saglik.
Teşekkürler :)
Çok güzel, detaylı ve açıklayıcı anlatım olmuş, böyle konuların devamını bekliyoruz, eline sağlık Enes.
Teşekkür ederim, elimden geleni yapıyorum. Gelecekte daha da iyileri gelecek, hazırda bekleyin diyorum. :)
Mükemmel olmuş elinize sağlık hocam ❤️ https://media1.giphy.com/media/l49JCSwMXyxHnYJws/giphy.gif
Sağ olun :)