Çözüldü KERNEL_MODE_HEAP_CORRUPTION mavi ekran hatası

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

BayGold

Üyecik
Katılım
8 Kasım 2024
Mesajlar
2
Beğeniler
0
Merhaba,

5900X ve 5950X işlemciye sahip iki ayrı bilgisayarım var. Bu bilgisayarların işlemcilerini birbiri ile değiştirdim. Değişimden sonra biri sorunsuz çalışırken diğeri 2-3 günde bir KERNEL_MODE_HEAP_CORRUPTION hatası vermeye başladı. Değişimden önce herhangi bir sorun yoktu. Minidump dosyasını ekliyorum. Yardımcı olursanız çok mutlu olurum.

 
Çözüm
Değiştirdin ve o kadar mı? Eğer ki sistemleri baştan kurduysan bunu da dipnot olarak geçmeni isterim.

Rich (BB code):
KERNEL_MODE_HEAP_CORRUPTION (13a)
The kernel mode heap manager has detected corruption in a heap.
Arguments:
Arg1: 0000000000000012, Type of corruption detected
Arg2: ffffcd0750010100, Address of the heap that reported the corruption
Arg3: ffffcd0771867000, Address at which the corruption was detected
Arg4: 0000000000000000

Yığınlar, iş parçacığına (çalışan sürece ait) özgü verileri depolamak için iş parçacıkları tarafından yapılan dinamik bellek tahsislerinden ibaretlerdir. Kullanıcı modu kodu bu yığınları kurmak ve yok etmek için çekirdeği çağırır (ntoskrnl) dipnot olarak ancak ve ancak içerikleri onları oluşturan kullanıcı modu kodu tarafından eklenir ve kaldırılır. KERNEL_MODE_HEAP_CORRUPTION ise bize bir yığınla ilgili bir sorun olduğunu söyler; tipik olarak bir arabellek aşımıdır (tahsis edilen yığının dışında bir adres kullanmak) ve bu genellikle bir kullanıcı modu kodu tarafından ortaya çıkar ya da muhtemelen bir sürücü hatasıdır diyebiliriz. Kırmızı olarak işaretlediğim hatanın type'ı ise Microsoft tarafından şöyle belgelenmiş:

Rich (BB code):
0x12 : The heap detected invalid internal state during the current operation. This is usually the result of a buffer overflow.

Sistemde çalışan belli bir iş parçacığı ya da process yok, bu yüzden yığını inceleyebilir ve suçlu sürücüyü görebiliriz:

Rich (BB code):
3: kd> k
 # Child-SP          RetAddr               Call Site
00 ffff8589`589074e8 fffff804`3a58e588     nt!KeBugCheckEx
01 ffff8589`589074f0 fffff804`3a58e5e8     nt!RtlpHeapHandleError+0x40
02 ffff8589`58907530 fffff804`3a58e215     nt!RtlpHpHeapHandleError+0x58
03 ffff8589`58907560 fffff804`3a43d896     nt!RtlpLogHeapFailure+0x45
04 ffff8589`58907590 fffff804`3a289424     nt!RtlpHpVsContextFree+0x1b2f86
05 ffff8589`58907630 fffff804`3a34ad29     nt!ExFreeHeapPool+0x4d4
06 ffff8589`58907710 fffff804`38908a19     nt!ExDeleteWakeTimerInfo+0x9 < Uyku modu sırasında zamanlayıcı görevleri işlemek?
07 ffff8589`58907740 fffff804`38904382     tcpip!PplGenericFreeFunction+0x59
08 ffff8589`58907770 fffff804`38904059     tcpip!WfpAlepEndpointCleanup+0x6b2
09 ffff8589`589077f0 fffff804`388d9907     tcpip!WfpAlepEndpointCleanup+0x389
0a ffff8589`58907870 fffff804`388eef03     tcpip!TcpCleanupTcbWorkQueueRoutine+0x1d7
0b ffff8589`589079d0 fffff804`387bbf36     tcpip!TcpCloseTcbWorkQueueRoutine+0x113
0c ffff8589`58907a70 fffff804`3a274783     NETIO!NetiopIoWorkItemRoutine+0x56 < netIO ile ağ rutinlerindeki süreçleri yönetmeye başlama çağrısı / çökme noktası
0d ffff8589`58907ac0 fffff804`3a2b8515     nt!IopProcessWorkItem+0x93
0e ffff8589`58907b30 fffff804`3a355855     nt!ExpWorkerThread+0x105
0f ffff8589`58907bd0 fffff804`3a3fe808     nt!PspSystemThreadStartup+0x55
10 ffff8589`58907c20 00000000`00000000     nt!KiStartSystemThread+0x28

Sistem ya uyku sırasında ya da uykudan çıkış sırasında muhtemelen bu uyku sırasında önceden zamanladığı bir takım ağ görevlerini düzenliyor ya da işi olmadığı için kaldırıyor. netIO çağrısı ile bu görevleri sıraya alıp işliyor ve sonrasında gelen TCPIP süreçleri, özellikle TCB protokülüne ait, muhtemelen 2 uygulamaya dahil olan ağ bağlantılarını kaldırıp WFP'e bağlı olan katmandaki verileri temizlemesi ve sonunda aldığı objeleri serbest bırakarak bu görevleri bitirmesi sonrası ya da sırasında bir bellek taşması yaratması sorunun kaynağı oluyor.

Rich (BB code):
3: kd> ub fffff804387bbf14
NETIO!NetiopIoWorkItemRoutine:
fffff804387bbef0 33c0 xor eax,eax
fffff804387bbef2 488d542420 lea rdx,[rsp+20h]
fffff804387bbef7 488bcb mov rcx,rbx
fffff804387bbefa 4889442430 mov qword ptr [rsp+30h],rax
fffff804387bbeff 0f11442420 movups xmmword ptr [rsp+20h],xmm0
fffff804387bbf04 4c8b15fd580600 mov r10,qword ptr [NETIO!_imp_KeAcquireInStackQueuedSpinLock (fffff80438821808)]
fffff804387bbf0b e8204eb001 call nt!KeAcquireInStackQueuedSpinLock (fffff8043a2c0d30)
fffff804387bbf10 488b7b10 mov rdi,qword ptr [rbx+10h]
3: kd> r rbx
rbx=0000000000000012 < Tespit edilen çökme

Klasik olarak, bir ağ sürücü ya da ağ bağlantısını kullanan bir başka ağ protokolü ile ilgili bir hata. Bu dosyaya özel tabii ki. Diğer tüm çekirdekleri tek tek inceledim ve sadece bu çekirdekte oluşan bir hata.

Rich (BB code):
3: kd> lmDvmrt640x64
Browse full module list
start             end                 module name
fffff804`4a590000 fffff804`4a63d000   rt640x64   (deferred)             
    Mapped memory image file: C:\ProgramData\dbg\sym\rt640x64.sys\5CE7AF86ad000\rt640x64.sys
    Image path: \SystemRoot\System32\drivers\rt640x64.sys
    Image name: rt640x64.sys
    Browse all global symbols  functions  data
    Timestamp:        Fri May 24 11:47:02 2019 (5CE7AF86)
    CheckSum:         000B965B
[........]                                     
        ProductName:      Realtek 8125/8136/8168/8169 PCI/PCIe Adapters                                       
[........]
        FileDescription:  Realtek 8125/8136/8168/8169 NDIS 6.40 64-bit Driver

Lütfen ağ bağlantızını güncelleyin ve durumu bildirin.
Değiştirdin ve o kadar mı? Eğer ki sistemleri baştan kurduysan bunu da dipnot olarak geçmeni isterim.

Rich (BB code):
KERNEL_MODE_HEAP_CORRUPTION (13a)
The kernel mode heap manager has detected corruption in a heap.
Arguments:
Arg1: 0000000000000012, Type of corruption detected
Arg2: ffffcd0750010100, Address of the heap that reported the corruption
Arg3: ffffcd0771867000, Address at which the corruption was detected
Arg4: 0000000000000000

Yığınlar, iş parçacığına (çalışan sürece ait) özgü verileri depolamak için iş parçacıkları tarafından yapılan dinamik bellek tahsislerinden ibaretlerdir. Kullanıcı modu kodu bu yığınları kurmak ve yok etmek için çekirdeği çağırır (ntoskrnl) dipnot olarak ancak ve ancak içerikleri onları oluşturan kullanıcı modu kodu tarafından eklenir ve kaldırılır. KERNEL_MODE_HEAP_CORRUPTION ise bize bir yığınla ilgili bir sorun olduğunu söyler; tipik olarak bir arabellek aşımıdır (tahsis edilen yığının dışında bir adres kullanmak) ve bu genellikle bir kullanıcı modu kodu tarafından ortaya çıkar ya da muhtemelen bir sürücü hatasıdır diyebiliriz. Kırmızı olarak işaretlediğim hatanın type'ı ise Microsoft tarafından şöyle belgelenmiş:

Rich (BB code):
0x12 : The heap detected invalid internal state during the current operation. This is usually the result of a buffer overflow.

Sistemde çalışan belli bir iş parçacığı ya da process yok, bu yüzden yığını inceleyebilir ve suçlu sürücüyü görebiliriz:

Rich (BB code):
3: kd> k
 # Child-SP          RetAddr               Call Site
00 ffff8589`589074e8 fffff804`3a58e588     nt!KeBugCheckEx
01 ffff8589`589074f0 fffff804`3a58e5e8     nt!RtlpHeapHandleError+0x40
02 ffff8589`58907530 fffff804`3a58e215     nt!RtlpHpHeapHandleError+0x58
03 ffff8589`58907560 fffff804`3a43d896     nt!RtlpLogHeapFailure+0x45
04 ffff8589`58907590 fffff804`3a289424     nt!RtlpHpVsContextFree+0x1b2f86
05 ffff8589`58907630 fffff804`3a34ad29     nt!ExFreeHeapPool+0x4d4
06 ffff8589`58907710 fffff804`38908a19     nt!ExDeleteWakeTimerInfo+0x9 < Uyku modu sırasında zamanlayıcı görevleri işlemek?
07 ffff8589`58907740 fffff804`38904382     tcpip!PplGenericFreeFunction+0x59
08 ffff8589`58907770 fffff804`38904059     tcpip!WfpAlepEndpointCleanup+0x6b2
09 ffff8589`589077f0 fffff804`388d9907     tcpip!WfpAlepEndpointCleanup+0x389
0a ffff8589`58907870 fffff804`388eef03     tcpip!TcpCleanupTcbWorkQueueRoutine+0x1d7
0b ffff8589`589079d0 fffff804`387bbf36     tcpip!TcpCloseTcbWorkQueueRoutine+0x113
0c ffff8589`58907a70 fffff804`3a274783     NETIO!NetiopIoWorkItemRoutine+0x56 < netIO ile ağ rutinlerindeki süreçleri yönetmeye başlama çağrısı / çökme noktası
0d ffff8589`58907ac0 fffff804`3a2b8515     nt!IopProcessWorkItem+0x93
0e ffff8589`58907b30 fffff804`3a355855     nt!ExpWorkerThread+0x105
0f ffff8589`58907bd0 fffff804`3a3fe808     nt!PspSystemThreadStartup+0x55
10 ffff8589`58907c20 00000000`00000000     nt!KiStartSystemThread+0x28

Sistem ya uyku sırasında ya da uykudan çıkış sırasında muhtemelen bu uyku sırasında önceden zamanladığı bir takım ağ görevlerini düzenliyor ya da işi olmadığı için kaldırıyor. netIO çağrısı ile bu görevleri sıraya alıp işliyor ve sonrasında gelen TCPIP süreçleri, özellikle TCB protokülüne ait, muhtemelen 2 uygulamaya dahil olan ağ bağlantılarını kaldırıp WFP'e bağlı olan katmandaki verileri temizlemesi ve sonunda aldığı objeleri serbest bırakarak bu görevleri bitirmesi sonrası ya da sırasında bir bellek taşması yaratması sorunun kaynağı oluyor.

Rich (BB code):
3: kd> ub fffff804387bbf14
NETIO!NetiopIoWorkItemRoutine:
fffff804387bbef0 33c0 xor eax,eax
fffff804387bbef2 488d542420 lea rdx,[rsp+20h]
fffff804387bbef7 488bcb mov rcx,rbx
fffff804387bbefa 4889442430 mov qword ptr [rsp+30h],rax
fffff804387bbeff 0f11442420 movups xmmword ptr [rsp+20h],xmm0
fffff804387bbf04 4c8b15fd580600 mov r10,qword ptr [NETIO!_imp_KeAcquireInStackQueuedSpinLock (fffff80438821808)]
fffff804387bbf0b e8204eb001 call nt!KeAcquireInStackQueuedSpinLock (fffff8043a2c0d30)
fffff804387bbf10 488b7b10 mov rdi,qword ptr [rbx+10h]
3: kd> r rbx
rbx=0000000000000012 < Tespit edilen çökme

Klasik olarak, bir ağ sürücü ya da ağ bağlantısını kullanan bir başka ağ protokolü ile ilgili bir hata. Bu dosyaya özel tabii ki. Diğer tüm çekirdekleri tek tek inceledim ve sadece bu çekirdekte oluşan bir hata.

Rich (BB code):
3: kd> lmDvmrt640x64
Browse full module list
start             end                 module name
fffff804`4a590000 fffff804`4a63d000   rt640x64   (deferred)             
    Mapped memory image file: C:\ProgramData\dbg\sym\rt640x64.sys\5CE7AF86ad000\rt640x64.sys
    Image path: \SystemRoot\System32\drivers\rt640x64.sys
    Image name: rt640x64.sys
    Browse all global symbols  functions  data
    Timestamp:        Fri May 24 11:47:02 2019 (5CE7AF86)
    CheckSum:         000B965B
[........]                                     
        ProductName:      Realtek 8125/8136/8168/8169 PCI/PCIe Adapters                                       
[........]
        FileDescription:  Realtek 8125/8136/8168/8169 NDIS 6.40 64-bit Driver

Lütfen ağ bağlantızını güncelleyin ve durumu bildirin.
 
Çözüm
Çok şey öğrendim hocam, detaylı açıkladığın için teşekkür ederim.
 

Harikasın hocam. Sistemleri baştan kurmadım. Sadece hata veren bilgisayarın BIOS'unu son kararlı sürüme güncelledim. Bugün ağ driverlarını güncelleyeceğim. Sonucu bildiririm, çok teşekkür ediyorum.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…