Kod:
Unknown bugcheck code (1aa) // EXCEPTION_ON_INVALID_STACK
Unknown bugcheck description
Arguments:
Arg1: 000000b4cc1fc530 <
Arg2: 0000000000000003 <
Arg3: ffffa081f12f2900
Arg4: ffffc006afdf7588
Aldığın 6 hatadan 4 tanesi yukarıdaki
0x1AA çökmesi sebebiyle oluşmuş.
Burdaki olaya bakılırsa, Microsoft bir
istisna işleme işlemini -ki bu işlem genelde donanım hataları gibi belirli istisnai kod durumlarını ele almak için olan bir uzantıdır.- kullanılarak yapılan bir istisna gönderimi sonrasında bir yığıt oluşturma işine giriyor haliyle lakin bu hata kodun da bu yığıtları oluşturan işlemcinin bozulduğunu görüyoruz. Mesele bu, 1.yığıtı bozan işaretçi, 2.parametre ise bozulan yığıtın ne olduğunu açıklıyor.
- 0x3 - A normal kernel thread stack
Kod:
6: kd> k
# Child-SP RetAddr Call Site
00 ffffa081`f12f2108 fffff805`434af582 nt!KeBugCheckEx
01 ffffa081`f12f2110 fffff805`434af7ab nt!RtlpGetStackLimitsEx+0x1c2e22
02 ffffa081`f12f2160 fffff805`432bd41e nt!RtlDispatchException+0x1c26db
03 ffffa081`f12f28d0 fffff805`434192b2 nt!KiDispatchException+0x1ae
04 ffffa081`f12f2fb0 fffff805`43419280 nt!KxExceptionDispatchOnExceptionStack+0x12
05 ffffc006`afdf7448 fffff805`4342dd75 nt!KiExceptionDispatchOnExceptionStackContinue
06 ffffc006`afdf7450 fffff805`43428c83 nt!KiExceptionDispatch+0x135
07 ffffc006`afdf7630 fffff805`43232cce nt!KiGeneralProtectionFault+0x343
08 ffffc006`afdf77c0 fffff805`43230192 nt!MiDispatchFault+0xce
09 ffffc006`afdf7900 fffff805`43429029 nt!MmAccessFault+0x152
0a ffffc006`afdf7a20 00007ff9`10811441 nt!KiPageFault+0x369
0b 000000b4`cc1fc530 00000000`00000000 0x00007ff9`10811441
Çökme,
nt!MiDispatchFault+0xce çağrısında meydana geliyor. Bu çağrıdan anladığımız; Windows Bellek Yöneticisinin çekirdek modülü içindeki bir işleve başvurduğu, lakin Bu işlevin o anda fiziksel RAM'de olmayan belleğe erişmeye çalıştığında ortaya çıkan sayfa hatasını gösteriyor. Böyle bir durumda sistem ya diskten o belleği getirecektir ya da çökecektir. Bu tam olarak bir açıklama olmasa da durumun özeti sayılır.
Kod:
6: kd> .exr
ExceptionAddress: fffff80412632cce (nt!MiDispatchFault+0x00000000000000ce)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 0000000000000000
Parameter[1]: ffffffffffffffff << Geçersiz
Attempt to read from address ffffffffffffffff <<<<< Geçersiz
Gördüğün üzere mevcut hata kaydı,
ffffffffffffff adresinden aynı adrese okuma girişiminde bulunulduğunu gösterir; Bu da durumu özetliyor bir nevi. Geçersiz adres yığınları, yukarıdaki istisna eşlemesi gibi donanımsal problemlerin altından çıkan istisnai durumlardır.
Kod:
6: kd> dt _KPRCB -y KeException
nt!_KPRCB
>+0x8170 KeExceptionDispatchCount : 0x48f09000<
Aslında tüm mesele bu, aldığın hata temelinde yanlış yazılan bir yığıta ait işlem kodu hatasıydı, yukarıdaki kısma bakarsan hatanın
KiExceptionDispatch çağrısı ile başladığını görürsün, bu çağrı, çökmeye sebep olan durumu işleyip onun için uygun bir çağrı atama, stack/yığıt oluşturmakta sorumludur.
Kısaca ek yığıtlarına bakarsak; Genel olarak yukarıdaki açıklama uyan adres tahsisi çağrılarını görürsün, sistem bir belleğe erişmeye çalışıyor ama o sanal bellek için tahsis edilen bir fiziksel alan yok, daha sonrasında
MiFastLockLeafPageTable çağrısıyla sanal adresleri fiziksel adreslere çevirme girişimi oluyor.
Kod:
6: kd> k
# Child-SP RetAddr Call Site
00 ffff8f8f`77417258 fffff804`126320d6 nt!MiFastLockLeafPageTable+0x186 <<
01 ffff8f8f`77417318 fffff804`12b874b2 nt!MiCommitPageTablesForVad+0x1c2 <<
02 ffff8f8f`774173c8 fffff804`1270e3de nt!MiCommitExistingVad+0x71 <<
03 ffff8f8f`77417598 fffff804`12632cce nt!MiDispatchFault+0xce
04 ffff8f8f`774175c8 fffff804`1270bd78 nt!MiUnlockAndDereferenceVad+0x68
05 ffff8f8f`774175f8 fffff804`12b85401 nt!MiAllocateVirtualMemory+0x361
06 ffff8f8f`77417768 fffff804`126320d6 nt!MiFastLockLeafPageTable+0x186
Bu hatadan donanımsal problem aramaya çalışırken, 2 şey fark ettim:
RAM'lerin çalıştığı hıza göre voltajları çok düşük, bu soruna sebep olabilir. O yüzden kullandığın XMP ayarını kapatıp öyle kontrol et sistemi.
Kod:
Speed 5600MHz
Manufacturer Corsair
Part Number CMK32GX5M2B5600Z40
Minimum Voltage 1100
Maximum Voltage 1100
İşlemcinin hızı dosyada 2 farklı şekilde gözüküyor aşağıda gördüğün gibi, eğer 5.2Ghz civarında bir OC ayarın varsa onu da normale çevirip öyle kontrol et. Eğer yoksa da dosyada hatalı bir gösterim olabilir.
Kod:
Processor Version Intel(R) Core(TM) i5-14600KF
Processor Voltage 8dh - 1.3V
External Clock 100MHz
Max Speed 5300MHz
Current Speed 5247MHz
Kod:
CPUID: "Intel(R) Core(TM) i5-14600KF"
Rated Speed: Not detected!
Measured Speed: 3494
[CODE highlight="13"]
IRQL_NOT_LESS_OR_EQUAL (a)
An attempt was made to access a pageable (or completely invalid) address at an
interrupt request level (IRQL) that is too high. This is usually
caused by drivers using improper addresses.
If a kernel debugger is available get the stack backtrace.
Arguments:
Arg1: ffffd09627ff7147, memory referenced
Arg2: 0000000000000002, IRQL
Arg3: 0000000000000001, bitfield :
bit 0 : value 0 = read operation, 1 = write operation
bit 3 : value 0 = not an execute operation, 1 = execute operation (only on chips which support this level of status)
Arg4: fffff8043ca1dc44, address which referenced memory
[/CODE]
Kod:
TRAP_FRAME: fffff10952ff71c0 -- (.trap 0xfffff10952ff71c0)
NOTE: The trap frame does not contain all registers.
Some register values may be zeroed or incorrect.
rax=0000000000000080 rbx=0000000000000000 rcx=ffffd09627ff6900
rdx=000000000000000e rsi=0000000000000000 rdi=0000000000000000
rip=fffff8043ca1dc44 rsp=fffff10952ff7358 rbp=00000000000000ff
r8=0000000000000001 r9=0000000000000000 r10=0000000000000001
r11=fffff10952ff7330 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0 nv up ei pl nz na pe nc
nt!KeZeroPages+0x14:
fffff804`3ca1dc44 660fe74110 movntdq xmmword ptr [rcx+10h],xmm0 ds:ffffd096`27ff6910
STACK_TEXT:
00 fffff109`52ff7078 fffff804`3ca2dc29 nt!KeBugCheckEx
01 fffff109`52ff7080 fffff804`3ca29134 nt!KiBugCheckDispatch+0x69
02 fffff109`52ff71c0 fffff804`3ca1dc44 nt!KiPageFault+0x474
03 fffff109`52ff7358 fffff804`3c903f2d nt!KeZeroPages+0x14
04 fffff109`52ff7360 fffff804`3c901790 nt!MiGetPageChain+0x5ad
05 fffff109`52ff7590 fffff804`3c901251 nt!MiResolvePrivateZeroFault+0x190
06 fffff109`52ff76e0 fffff804`3c832e39 nt!MiResolveDemandZeroFault+0x291
07 fffff109`52ff77c0 fffff804`3c830192 nt!MiDispatchFault+0x239
08 fffff109`52ff7900 fffff804`3ca29029 nt!MmAccessFault+0x152
09 fffff109`52ff7a20 00007ffa`03036ab5 nt!KiPageFault+0x369
0a 000000f1`38e0e170 00000000`00000000 0x00007ffa`03036ab
Sistem,
nt!KeZeroPagesçağrısında yani, bellek temizleme esnasında çökmüş diğer hata kodlarından farklı olan bu durdurma kodunda. Yığıtlar benzer tabii ki.
Kod:
7: kd> !pte fffff8043ca1dc44
VA fffff8043ca1dc44
PXE at FFFFF57ABD5EAF80 PPE at FFFFF57ABD5F0080 PDE at FFFFF57ABE010F28 PTE at FFFFF57C021E50E8
contains 000000087FF0B063 contains 000000087FF0C063 contains 0A000001248001A1 contains 0000000000000000
pfn 87ff0b ---DA--KWEV pfn 87ff0c ---DA--KWEV pfn 124800 -GL-A--KREV LARGE PAGE pfn 12481d
Donanım kontrolü yapıver. Bellekleri TestMem5 - OCCT gibi araçlarla teste tabi tut, gerekirse tek tek dene. XMP kapalı şekilde kullan.
Not: Bu arada RAM hızlarını XMP ile yükseltmek yerine elinle direkt olarak yükseltmiş de olabilirsin. O yüzden ayarı sıfırlayıp sistemi öyle kontrol et.