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

Litexs

Uzman
Katılım
20 Temmuz 2024
Mesajlar
13
Beğeniler
4
Cities Skylines 2 oynarken arada driver sorunu veya mavi ekran hatası alıyorum NVIDIA sürücülerinden. Bıktım sırf bu yüzden mavi ekran hata kodu dxgkernel olarak geçiyor donanımda bir şey yok eminim çünkü yeni servisten geldi. Isınmadığına da eminim, oyun esnasında ekran kartı 79 derecelerde. Ekran kartı RTX4060 Mobile. Minidump dosyası: 081024-15437-01.rar
 
Son düzenleyen: Moderatör:
Çözüm
Rich (BB code):
VIDEO_DXGKRNL_FATAL_ERROR (113)
The dxgkrnl has detected that a violation has occurred. This resulted
in a condition that dxgkrnl can no longer progress.  By crashing, dxgkrnl
is attempting to get enough information into the minidump such that somebody
can pinpoint the crash cause. Any other values after parameter 1 must be
individually examined according to the subtype.
Arguments:
Arg1: 0000000000000019, The subtype of the BugCheck:
Arg2: 0000000000000002
Arg3: 00000000000010de
Arg4: 00000000000028a0

Gördüğün gibi, grafik alt sistemi DXGRNL kurtarılamaz bir hatayla karşılaşıyor ancak açıklama bundan daha fazlasını sağlamıyor ve bu nedenle çağrı yığınını incelememiz gerekiyor. Normal şartlarda bu hatada belli başlı sebepler olur. Misalinde 3 ve 4.parametreler ekran kartını simgeliyorlar 10DE NVIDIA 28A0 4060M'a özel kimlikler. Yığıtlara bakıp devam edersek;

Rich (BB code):
7: kd> !stack
Call Stack : 8 frames
## Stack-Pointer    Return-Address   Call-Site     
00 ffffe1899f41f6b8 fffff80561215745 nt!KeBugCheckEx+0
01 ffffe1899f41f6c0 fffff805610148ac watchdog!WdLogSingleEntry5+3c05 (perf)
02 ffffe1899f41f770 fffff80560f61a56 dxgkrnl!DpiFdoHandleDevicePower+b2e3c (perf)
03 ffffe1899f41f820 fffff80560f634e1 dxgkrnl!DpiFdoDispatchPower+16
04 ffffe1899f41f850 fffff8058a8caf1b dxgkrnl!DpiDispatchPower+e1
05 ffffe1899f41f970 ffffb88cf632aaa0 nvlddmkm+caaf1b (leaf)

Ekran kartının bizzat sürücü tarafından başlatılan çağrı yığının grafik alt sisteminde bir güç yönetimi çağrıları sonrası watchdog'un devreye girmesiyle durduğunu ve mavi ekrana girdiğini görüyoruz. Bunu burdan bakarak da anlayabiliriz ama aygıt nesnelerinden ilerleyip o anda yürütülen istek paketlerinin ne olduğunu ve sorunun ne bağlamında ortaya çıktığını anlamaya çalışabiliriz.

Ondan önce, FailireBucketID'den dikkatimi çeken bir noktaya değinmek istiyorum:

Kod:
FAILURE_BUCKET_ID:  0x113_19_nvlddmkm!unknown_function

'unknown_function' eki, sürücüdeki (nvlddmkm.sys) bir işlevin çağrıldığı ancak işlevin mevcut olmadığı anlamına geliyor. Bu genellikle bir sürücü hatasıdır, işlev işaretçileri bozulmuştur ya da gerçek bir bilinmeyen işlev çağrılmıştır diyebiliriz ama ondan önce dediğim gibi devam edelim.

[CODE lang="rich" highlight="4"]7: kd> !devobj ffffb88cfaa36030
Device object (ffffb88cfaa36030) is for:
InfoMask field not found for _OBJECT_HEADER at ffffb88cfaa36000
\Driver\nvlddmkm DriverObject ffffb88cfb4029c0
Current Irp 00000000 RefCount 0 Type 00000023 Flags 00002004
SecurityDescriptor ffff94044f3805e0 DevExt ffffb88cfaa36180 DevObjExt ffffb88cfaa377f8
ExtensionFlags (0000000000)
Characteristics (0x00000100) FILE_DEVICE_SECURE_OPEN
AttachedTo (Lower) ffffb88cf1c54e10 \Driver\ACPI
[/CODE]

[CODE lang="rich" highlight="7,37,42"]7: kd> drvobj ffffb88cfb4029c0 7
Couldn't resolve error at 'rvobj ffffb88cfb4029c0 7'
7: kd> !drvobj ffffb88cfb4029c0 7
fffff8055b63ff78: Unable to get value of ObpRootDirectoryObject
fffff8055b63ff78: Unable to get value of ObpRootDirectoryObject
Driver object (ffffb88cfb4029c0) is for:
\Driver\nvlddmkm

DriverEntry: fffff8058e1b42f0 nvlddmkm
DriverStartIo: 00000000
DriverUnload: fffff8058b23dbe0 nvlddmkm
AddDevice: fffff8058b23bc80 nvlddmkm

Dispatch routines:
[00] IRP_MJ_CREATE fffff8058b23c190 nvlddmkm+0x161c190
[01] IRP_MJ_CREATE_NAMED_PIPE fffff8058b23c190 nvlddmkm+0x161c190
[02] IRP_MJ_CLOSE fffff8058b23c190 nvlddmkm+0x161c190
[03] IRP_MJ_READ fffff8058b23c190 nvlddmkm+0x161c190
[04] IRP_MJ_WRITE fffff8058b23c190 nvlddmkm+0x161c190
[05] IRP_MJ_QUERY_INFORMATION fffff8058b23c190 nvlddmkm+0x161c190
[06] IRP_MJ_SET_INFORMATION fffff8058b23c190 nvlddmkm+0x161c190
[07] IRP_MJ_QUERY_EA fffff8058b23c190 nvlddmkm+0x161c190
[08] IRP_MJ_SET_EA fffff8058b23c190 nvlddmkm+0x161c190
[09] IRP_MJ_FLUSH_BUFFERS fffff8058b23c190 nvlddmkm+0x161c190
[0a] IRP_MJ_QUERY_VOLUME_INFORMATION fffff8058b23c190 nvlddmkm+0x161c190
[0b] IRP_MJ_SET_VOLUME_INFORMATION fffff8058b23c190 nvlddmkm+0x161c190
[0c] IRP_MJ_DIRECTORY_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[0d] IRP_MJ_FILE_SYSTEM_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[0e] IRP_MJ_DEVICE_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[0f] IRP_MJ_INTERNAL_DEVICE_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[10] IRP_MJ_SHUTDOWN fffff8058b23c190 nvlddmkm+0x161c190
[11] IRP_MJ_LOCK_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[12] IRP_MJ_CLEANUP 00000000
[13] IRP_MJ_CREATE_MAILSLOT 00000000
[14] IRP_MJ_QUERY_SECURITY 00000000
[15] IRP_MJ_SET_SECURITY 00000000
[16] IRP_MJ_POWER 00000000 <<< Burada kayıtlı bir gönderim rutini yok
[17] IRP_MJ_SYSTEM_CONTROL 00000000
[18] IRP_MJ_DEVICE_CHANGE 00000000
[19] IRP_MJ_QUERY_QUOTA 00000000
[1a] IRP_MJ_SET_QUOTA 00000000
[1b] IRP_MJ_PNP 00000000 << IRP'yi işlemek için gönderim rutini yok
[/CODE]

İşaretlediğim ve yorumladığım rutin, sürücünün kendisiyle ilgili bir hataya tekabul ediyor ve daha çok güç geçişleriyle ilgili olabilir mi dedirtiyor? Bu ve buna benzer bir hatanın daha çok sistemin uykuya geçerken ya da çıkarken olması olası ama direkt olarak oyunun ortasında olması bi tık tuhaflaştırıyor durumu. Lakin baktığım dosya da oyundayken oluşan bir dosya değil gibi.

[CODE highlight="19,23"]7: kd> !irp ffffb88cf632a8b0
Irp is active with 6 stacks 5 is current (= 0xffffb88cf632aaa0)
No Mdl: No System Buffer: Thread 00000000: Irp stack trace. Pending has been returned
cmd flg cl Device File Completion-Context
[N/A(0), N/A(0)]
0 2 00000000 00000000 00000000-00000000

Args: 00000000 00000000 00000000 ffffffffc000000e
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-00000000

Args: 00000000 00000000 00000000 00000000
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-00000000

Args: 00000000 00000000 00000000 00000000
[IRP_MJ_POWER(16), IRP_MN_WAIT_WAKE(0)]
0 2 ffffb88cf1c17060 00000000 fffff80560d9b9d0-ffffe1899f41f7b0
Name paged out dxgkrnl!DpiFdoPowerCompletionRoutine
Args: 00000000 00000000 00000000 00000000
[IRP_MJ_POWER(16), IRP_MN_SET_POWER(2)]
0 e1 ffffb88cfaa36030 00000000 fffff8055acbb410-ffffb88d003e1b38 Success Error Cancel pending
\Driver\nvlddmkm nt!PopRequestCompletion
Args: 00000000 00000001 00000001 00000000
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-ffffb88d003e1b38 [/CODE]

Burdaki gönderim rutinleri, çökmenin nedenini tam olarak açıklıyor. [16,0] rutini grafik alt birimine gönderiliyor. Bunun sebebi, IRP'nin bize sistemin cihaza bekleme modundan güç durumuna geçmesini söylediğini ancak cihazın takılıp kaldığını gösteriyor.

Devamında ise IRP_MN_WAIT_WAKE ile basitçe cihaza bir uyandırma sinyali gönderiliyor, bu da sürücüye tam güç durumuna geçmesini söyleyen başka bir güç IRP'si üretiyor. Uyandırma sinyali her şey olabilir. Lakin sonrasında gördüğün gibi \Driver\nvlddmkm hala pending durumda yani takılı durumda. Bu da neden güç problemi olduğunu ve neden sürücü temelli olduğunu gösteriyor. Sürücü takılı kalıyor çünkü.

Bunlara ek olarak sistemin aynı zamanda, PnP IRP'ler için kayıtlı bir işleyici işlevi yok dolayısıyla sürücü bu G/Ç isteğini ele almayı bilmiyor.Kısacası bir PnP IRP gönderiliyor ancak grafik kartı sürücüsü bunu çözemiyor..

Burda yapılacak şeylerden biri de DDU ile sürücünü kaldırıp Laptop'un destek sayfasına yüklenen NVIDIA sürücüsünü kurmayı denemek. Zira genel sürücülerdense özelleştirilmiş bir sürücü ile denemek en azından daha mantıklı olacaktır. Laptoplarda güç geçişlerinin masaüstü bilgisayarlar kadar başına buyruk olduğunu düşünmüyorum, daha basit ve tek çatı altında toplanan sistemler. Eğer sorun devam ederse direkt olarak işlemcinin gelişmiş güç planlarını bir planda sabitleyip denemeni öneririm.

Bunlardan bağımsız olarak, serviste ne kadar detaylı inceleme yapıldığı muamma. Çok da güvenme. Bunu söylememin sebebi de bu tip hataların anakart problemlerinden çıkması direkt olarak.

Rich (BB code):
VIDEO_DXGKRNL_FATAL_ERROR (113)
The dxgkrnl has detected that a violation has occurred. This resulted
in a condition that dxgkrnl can no longer progress.  By crashing, dxgkrnl
is attempting to get enough information into the minidump such that somebody
can pinpoint the crash cause. Any other values after parameter 1 must be
individually examined according to the subtype.
Arguments:
Arg1: 0000000000000019, The subtype of the BugCheck:
Arg2: 0000000000000002
Arg3: 00000000000010de
Arg4: 00000000000028a0

Gördüğün gibi, grafik alt sistemi DXGRNL kurtarılamaz bir hatayla karşılaşıyor ancak açıklama bundan daha fazlasını sağlamıyor ve bu nedenle çağrı yığınını incelememiz gerekiyor. Normal şartlarda bu hatada belli başlı sebepler olur. Misalinde 3 ve 4.parametreler ekran kartını simgeliyorlar 10DE NVIDIA 28A0 4060M'a özel kimlikler. Yığıtlara bakıp devam edersek;

Rich (BB code):
7: kd> !stack
Call Stack : 8 frames
## Stack-Pointer    Return-Address   Call-Site     
00 ffffe1899f41f6b8 fffff80561215745 nt!KeBugCheckEx+0
01 ffffe1899f41f6c0 fffff805610148ac watchdog!WdLogSingleEntry5+3c05 (perf)
02 ffffe1899f41f770 fffff80560f61a56 dxgkrnl!DpiFdoHandleDevicePower+b2e3c (perf)
03 ffffe1899f41f820 fffff80560f634e1 dxgkrnl!DpiFdoDispatchPower+16
04 ffffe1899f41f850 fffff8058a8caf1b dxgkrnl!DpiDispatchPower+e1
05 ffffe1899f41f970 ffffb88cf632aaa0 nvlddmkm+caaf1b (leaf)

Ekran kartının bizzat sürücü tarafından başlatılan çağrı yığının grafik alt sisteminde bir güç yönetimi çağrıları sonrası watchdog'un devreye girmesiyle durduğunu ve mavi ekrana girdiğini görüyoruz. Bunu burdan bakarak da anlayabiliriz ama aygıt nesnelerinden ilerleyip o anda yürütülen istek paketlerinin ne olduğunu ve sorunun ne bağlamında ortaya çıktığını anlamaya çalışabiliriz.

Ondan önce, FailireBucketID'den dikkatimi çeken bir noktaya değinmek istiyorum:

Kod:
FAILURE_BUCKET_ID:  0x113_19_nvlddmkm!unknown_function

'unknown_function' eki, sürücüdeki (nvlddmkm.sys) bir işlevin çağrıldığı ancak işlevin mevcut olmadığı anlamına geliyor. Bu genellikle bir sürücü hatasıdır, işlev işaretçileri bozulmuştur ya da gerçek bir bilinmeyen işlev çağrılmıştır diyebiliriz ama ondan önce dediğim gibi devam edelim.

[CODE lang="rich" highlight="4"]7: kd> !devobj ffffb88cfaa36030
Device object (ffffb88cfaa36030) is for:
InfoMask field not found for _OBJECT_HEADER at ffffb88cfaa36000
\Driver\nvlddmkm DriverObject ffffb88cfb4029c0
Current Irp 00000000 RefCount 0 Type 00000023 Flags 00002004
SecurityDescriptor ffff94044f3805e0 DevExt ffffb88cfaa36180 DevObjExt ffffb88cfaa377f8
ExtensionFlags (0000000000)
Characteristics (0x00000100) FILE_DEVICE_SECURE_OPEN
AttachedTo (Lower) ffffb88cf1c54e10 \Driver\ACPI
[/CODE]

[CODE lang="rich" highlight="7,37,42"]7: kd> drvobj ffffb88cfb4029c0 7
Couldn't resolve error at 'rvobj ffffb88cfb4029c0 7'
7: kd> !drvobj ffffb88cfb4029c0 7
fffff8055b63ff78: Unable to get value of ObpRootDirectoryObject
fffff8055b63ff78: Unable to get value of ObpRootDirectoryObject
Driver object (ffffb88cfb4029c0) is for:
\Driver\nvlddmkm

DriverEntry: fffff8058e1b42f0 nvlddmkm
DriverStartIo: 00000000
DriverUnload: fffff8058b23dbe0 nvlddmkm
AddDevice: fffff8058b23bc80 nvlddmkm

Dispatch routines:
[00] IRP_MJ_CREATE fffff8058b23c190 nvlddmkm+0x161c190
[01] IRP_MJ_CREATE_NAMED_PIPE fffff8058b23c190 nvlddmkm+0x161c190
[02] IRP_MJ_CLOSE fffff8058b23c190 nvlddmkm+0x161c190
[03] IRP_MJ_READ fffff8058b23c190 nvlddmkm+0x161c190
[04] IRP_MJ_WRITE fffff8058b23c190 nvlddmkm+0x161c190
[05] IRP_MJ_QUERY_INFORMATION fffff8058b23c190 nvlddmkm+0x161c190
[06] IRP_MJ_SET_INFORMATION fffff8058b23c190 nvlddmkm+0x161c190
[07] IRP_MJ_QUERY_EA fffff8058b23c190 nvlddmkm+0x161c190
[08] IRP_MJ_SET_EA fffff8058b23c190 nvlddmkm+0x161c190
[09] IRP_MJ_FLUSH_BUFFERS fffff8058b23c190 nvlddmkm+0x161c190
[0a] IRP_MJ_QUERY_VOLUME_INFORMATION fffff8058b23c190 nvlddmkm+0x161c190
[0b] IRP_MJ_SET_VOLUME_INFORMATION fffff8058b23c190 nvlddmkm+0x161c190
[0c] IRP_MJ_DIRECTORY_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[0d] IRP_MJ_FILE_SYSTEM_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[0e] IRP_MJ_DEVICE_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[0f] IRP_MJ_INTERNAL_DEVICE_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[10] IRP_MJ_SHUTDOWN fffff8058b23c190 nvlddmkm+0x161c190
[11] IRP_MJ_LOCK_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[12] IRP_MJ_CLEANUP 00000000
[13] IRP_MJ_CREATE_MAILSLOT 00000000
[14] IRP_MJ_QUERY_SECURITY 00000000
[15] IRP_MJ_SET_SECURITY 00000000
[16] IRP_MJ_POWER 00000000 <<< Burada kayıtlı bir gönderim rutini yok
[17] IRP_MJ_SYSTEM_CONTROL 00000000
[18] IRP_MJ_DEVICE_CHANGE 00000000
[19] IRP_MJ_QUERY_QUOTA 00000000
[1a] IRP_MJ_SET_QUOTA 00000000
[1b] IRP_MJ_PNP 00000000 << IRP'yi işlemek için gönderim rutini yok
[/CODE]

İşaretlediğim ve yorumladığım rutin, sürücünün kendisiyle ilgili bir hataya tekabul ediyor ve daha çok güç geçişleriyle ilgili olabilir mi dedirtiyor? Bu ve buna benzer bir hatanın daha çok sistemin uykuya geçerken ya da çıkarken olması olası ama direkt olarak oyunun ortasında olması bi tık tuhaflaştırıyor durumu. Lakin baktığım dosya da oyundayken oluşan bir dosya değil gibi.

[CODE highlight="19,23"]7: kd> !irp ffffb88cf632a8b0
Irp is active with 6 stacks 5 is current (= 0xffffb88cf632aaa0)
No Mdl: No System Buffer: Thread 00000000: Irp stack trace. Pending has been returned
cmd flg cl Device File Completion-Context
[N/A(0), N/A(0)]
0 2 00000000 00000000 00000000-00000000

Args: 00000000 00000000 00000000 ffffffffc000000e
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-00000000

Args: 00000000 00000000 00000000 00000000
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-00000000

Args: 00000000 00000000 00000000 00000000
[IRP_MJ_POWER(16), IRP_MN_WAIT_WAKE(0)]
0 2 ffffb88cf1c17060 00000000 fffff80560d9b9d0-ffffe1899f41f7b0
Name paged out dxgkrnl!DpiFdoPowerCompletionRoutine
Args: 00000000 00000000 00000000 00000000
[IRP_MJ_POWER(16), IRP_MN_SET_POWER(2)]
0 e1 ffffb88cfaa36030 00000000 fffff8055acbb410-ffffb88d003e1b38 Success Error Cancel pending
\Driver\nvlddmkm nt!PopRequestCompletion
Args: 00000000 00000001 00000001 00000000
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-ffffb88d003e1b38 [/CODE]

Burdaki gönderim rutinleri, çökmenin nedenini tam olarak açıklıyor. [16,0] rutini grafik alt birimine gönderiliyor. Bunun sebebi, IRP'nin bize sistemin cihaza bekleme modundan güç durumuna geçmesini söylediğini ancak cihazın takılıp kaldığını gösteriyor.

Devamında ise IRP_MN_WAIT_WAKE ile basitçe cihaza bir uyandırma sinyali gönderiliyor, bu da sürücüye tam güç durumuna geçmesini söyleyen başka bir güç IRP'si üretiyor. Uyandırma sinyali her şey olabilir. Lakin sonrasında gördüğün gibi \Driver\nvlddmkm hala pending durumda yani takılı durumda. Bu da neden güç problemi olduğunu ve neden sürücü temelli olduğunu gösteriyor. Sürücü takılı kalıyor çünkü.

Bunlara ek olarak sistemin aynı zamanda, PnP IRP'ler için kayıtlı bir işleyici işlevi yok dolayısıyla sürücü bu G/Ç isteğini ele almayı bilmiyor.Kısacası bir PnP IRP gönderiliyor ancak grafik kartı sürücüsü bunu çözemiyor..

Burda yapılacak şeylerden biri de DDU ile sürücünü kaldırıp Laptop'un destek sayfasına yüklenen NVIDIA sürücüsünü kurmayı denemek. Zira genel sürücülerdense özelleştirilmiş bir sürücü ile denemek en azından daha mantıklı olacaktır. Laptoplarda güç geçişlerinin masaüstü bilgisayarlar kadar başına buyruk olduğunu düşünmüyorum, daha basit ve tek çatı altında toplanan sistemler. Eğer sorun devam ederse direkt olarak işlemcinin gelişmiş güç planlarını bir planda sabitleyip denemeni öneririm.

Bunlardan bağımsız olarak, serviste ne kadar detaylı inceleme yapıldığı muamma. Çok da güvenme. Bunu söylememin sebebi de bu tip hataların anakart problemlerinden çıkması direkt olarak.

 
Çözüm
Rich (BB code):
VIDEO_DXGKRNL_FATAL_ERROR (113)
The dxgkrnl has detected that a violation has occurred. This resulted.
in a condition that dxgkrnl can no longer progress. By crashing, dxgkrnl.
is attempting to get enough information into the minidump such that somebody.
can pinpoint the crash cause. Any other values after parameter 1 must be.
individually examined according to the subtype.
Arguments:
Arg1: 0000000000000019, The subtype of the BugCheck:
Arg2: 0000000000000002.
Arg3: 00000000000010de.
Arg4: 00000000000028a0.

Gördüğün gibi, grafik alt sistemi dxgrnl kurtarılamaz bir hatayla karşılaşıyor ancak açıklama bundan daha fazlasını sağlamıyor ve bu nedenle çağrı yığınını incelememiz gerekiyor. Normal şartlarda bu hatada belli başlı sebepler olur. Misalinde 3 ve 4.parametreler ekran kartını simgeliyorlar 10'de NVIDIA 28A0 4060M'a özel kimlikler. Yığıtlara bakıp devam edersek;

Rich (BB code):
7: kd> !stack
Call Stack : 8 frames.
## Stack-Pointer Return-Address Call-Site
00 ffffe1899f41f6b8 fffff80561215745 nt!KeBugCheckEx+0
01 ffffe1899f41f6c0 fffff805610148ac watchdog!WdLogSingleEntry5+3c05 (perf)
02 ffffe1899f41f770 fffff80560f61a56 dxgkrnl!DpiFdoHandleDevicePower+b2e3c (perf)
03 ffffe1899f41f820 fffff80560f634e1 dxgkrnl!DpiFdoDispatchPower+16
04 ffffe1899f41f850 fffff8058a8caf1b dxgkrnl!DpiDispatchPower+e1
05 ffffe1899f41f970 ffffb88cf632aaa0 nvlddmkm+caaf1b (leaf)

Ekran kartının bizzat sürücü tarafından başlatılan çağrı yığının grafik alt sisteminde bir güç yönetimi çağrıları sonrası Watchdog'un devreye girmesiyle durduğunu ve mavi ekrana girdiğini görüyoruz. Bunu buradan bakarak da anlayabiliriz ama aygıt nesnelerinden ilerleyip o anda yürütülen istek paketlerinin ne olduğunu ve sorunun ne bağlamında ortaya çıktığını anlamaya çalışabiliriz.

Ondan önce, failirebucketıd'den dikkatimi çeken bir noktaya değinmek istiyorum:

Kod:
FAILURE_BUCKET_ID: 0x113_19_nvlddmkm!unknown_function

'Unknown_function' eki, sürücüdeki (nvlddmkm.sys) bir işlevin çağrıldığı ancak işlevin mevcut olmadığı anlamına geliyor. Bu genellikle bir sürücü hatasıdır, işlev işaretçileri bozulmuştur ya da gerçek bir bilinmeyen işlev çağrılmıştır diyebiliriz ama ondan önce dediğim gibi devam edelim.

[CODE lang="rich" highlight="4"]7: kd> !devobj ffffb88cfaa36030.
Device object (ffffb88cfaa36030) is for:
InfoMask field not found for _OBJECT_HEADER at ffffb88cfaa36000.
\Driver\nvlddmkm DriverObject ffffb88cfb4029c0.
Current Irp 00000000 RefCount 0 Type 00000023 Flags 00002004.
SecurityDescriptor ffff94044f3805e0 DevExt ffffb88cfaa36180 DevObjExt ffffb88cfaa377f8.
ExtensionFlags (0000000000)
Characteristics (0x00000100) FILE_DEVICE_SECURE_OPEN
AttachedTo (Lower) ffffb88cf1c54e10 \Driver\ACPI
[/CODE]

[CODE lang="rich" highlight="7,37,42"]7: kd> drvobj ffffb88cfb4029c0 7
Couldn't resolve error at 'rvobj ffffb88cfb4029c0 7'.
7: kd> !drvobj ffffb88cfb4029c0 7
fffff8055b63ff78: Unable to get value of ObpRootDirectoryObject
fffff8055b63ff78: Unable to get value of ObpRootDirectoryObject
Driver object (ffffb88cfb4029c0) is for:
\Driver\nvlddmkm

DriverEntry: fffff8058e1b42f0 nvlddmkm.
DriverStartIo: 00000000.
DriverUnload: fffff8058b23dbe0 nvlddmkm.
AddDevice: fffff8058b23bc80 nvlddmkm.

Dispatch routines:
[00] IRP_MJ_CREATE fffff8058b23c190 nvlddmkm+0x161c190
[01] IRP_MJ_CREATE_NAMED_PIPE fffff8058b23c190 nvlddmkm+0x161c190
[02] IRP_MJ_CLOSE fffff8058b23c190 nvlddmkm+0x161c190
[03] IRP_MJ_READ fffff8058b23c190 nvlddmkm+0x161c190
[04] IRP_MJ_WRITE fffff8058b23c190 nvlddmkm+0x161c190
[05] IRP_MJ_QUERY_INFORMATION fffff8058b23c190 nvlddmkm+0x161c190
[06] IRP_MJ_SET_INFORMATION fffff8058b23c190 nvlddmkm+0x161c190
[07] IRP_MJ_QUERY_EA fffff8058b23c190 nvlddmkm+0x161c190
[08] IRP_MJ_SET_EA fffff8058b23c190 nvlddmkm+0x161c190
[09] IRP_MJ_FLUSH_BUFFERS fffff8058b23c190 nvlddmkm+0x161c190
[0a] IRP_MJ_QUERY_VOLUME_INFORMATION fffff8058b23c190 nvlddmkm+0x161c190
[0b] IRP_MJ_SET_VOLUME_INFORMATION fffff8058b23c190 nvlddmkm+0x161c190
[0c] IRP_MJ_DIRECTORY_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[0d] IRP_MJ_FILE_SYSTEM_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[0e] IRP_MJ_DEVICE_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[0f] IRP_MJ_INTERNAL_DEVICE_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[10] IRP_MJ_SHUTDOWN fffff8058b23c190 nvlddmkm+0x161c190
[11] IRP_MJ_LOCK_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[12] IRP_MJ_CLEANUP 00000000.
[13] IRP_MJ_CREATE_MAILSLOT 00000000.
[14] IRP_MJ_QUERY_SECURITY 00000000.
[15] IRP_MJ_SET_SECURITY 00000000.
[16] IRP_MJ_POWER 00000000 <<< Burada kayıtlı bir gönderim rutini yok.
[17] IRP_MJ_SYSTEM_CONTROL 00000000.
[18] IRP_MJ_DEVICE_CHANGE 00000000.
[19] IRP_MJ_QUERY_QUOTA 00000000.
[1a] IRP_MJ_SET_QUOTA 00000000.
[1b] IRP_MJ_PNP 00000000 << IRP'yi işlemek için gönderim rutini yok.
[/CODE]

İşaretlediğim ve yorumladığım rutin, sürücünün kendisiyle ilgili bir hataya tekabül ediyor ve daha çok güç geçişleriyle ilgili olabilir mi dedirtiyor? Bu ve buna benzer bir hatanın daha çok sistemin uykuya geçerken ya da çıkarken olması olası ama direkt olarak oyunun ortasında olması bir tık tuhaflaştırıyor durumu. Lakin baktığım dosya da oyundayken oluşan bir dosya değil gibi.

[CODE highlight="19,23"]7: kd> !irp ffffb88cf632a8b0.
Irp is active with 6 stacks 5 is current (= 0xffffb88cf632aaa0)
No Mdl: No System Buffer: Thread 00000000: Irp stack trace. Pending has been returned.
cmd flg cl Device File Completion-Context
[N/A(0), N/A(0)]
0 2 00000000 00000000 00000000-00000000

Args: 00000000 00000000 00000000 ffffffffc000000e.
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-00000000

Args: 00000000 00000000 00000000 00000000.
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-00000000

Args: 00000000 00000000 00000000 00000000.
[IRP_MJ_POWER(16), IRP_MN_WAIT_WAKE(0)]
0 2 ffffb88cf1c17060 00000000 fffff80560d9b9d0-ffffe1899f41f7b0
Name paged out dxgkrnl!DpiFdoPowerCompletionRoutine
Args: 00000000 00000000 00000000 00000000.
[IRP_MJ_POWER(16), IRP_MN_SET_POWER(2)]

0 e1 ffffb88cfaa36030 00000000 fffff8055acbb410-ffffb88d003e1b38 Success Error Cancel pending.
\Driver\nvlddmkm nt!PopRequestCompletion
Args: 00000000 00000001 00000001 00000000.
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-ffffb88d003e1b38 [/CODE]

Buradaki gönderim rutinleri, çökmenin nedenini tam olarak açıklıyor. [16,0] rutini grafik alt birimine gönderiliyor. Bunun sebebi, ırp'nin bize sistemin cihaza bekleme modundan güç durumuna geçmesini söylediğini ancak cihazın takılıp kaldığını gösteriyor.

Devamında ise ırp_mn_waıt_wake ile basitçe cihaza bir uyandırma sinyali gönderiliyor, bu da sürücüye tam güç durumuna geçmesini söyleyen başka bir güç ırp'si üretiyor. Uyandırma sinyali her şey olabilir. Lakin sonrasında gördüğün gibi \Driver\nvlddmkm hala pending durumda yani takılı durumda. Bu da neden güç problemi olduğunu ve neden sürücü temelli olduğunu gösteriyor. Sürücü takılı kalıyor çünkü.

Bunlara ek olarak sistemin aynı zamanda, PnP ırp'ler için kayıtlı bir işleyici işlevi yok dolayısıyla sürücü bu G/Ç isteğini ele almayı bilmiyor. Kısacası bir PnP ırp gönderiliyor ancak grafik kartı sürücüsü bunu çözemiyor.

Burada yapılacak şeylerden biri de DDU ile sürücünü kaldırıp laptopun destek sayfasına yüklenen NVIDIA sürücüsünü kurmayı denemek. Zira genel sürücülerdense özelleştirilmiş bir sürücü ile denemek en azından daha mantıklı olacaktır. Laptoplarda güç geçişlerinin masaüstü bilgisayarlar kadar başına buyruk olduğunu düşünmüyorum, daha basit ve tek çatı altında toplanan sistemler. Eğer sorun devam ederse direkt olarak işlemcinin gelişmiş güç planlarını bir planda sabitleyip denemeni öneririm.

Bunlardan bağımsız olarak, serviste ne kadar detaylı inceleme yapıldığı muamma. Çok da güvenme. Bunu söylememin sebebi de bu tip hataların anakart problemlerinden çıkması direkt olarak.

Çok uğraşmışsınız, bundan dolayı teşekkür ederim. İşe yaramadı ne yazık ki (güç planı kısmı dengeli performans vs. olanlar mı onu pek anlamadım) Windows 11'den Windows 10'a geçmeyi deneyeceğim ki eğer o da olmazsa tekrar 11 kurarak bir kez daha servise göndereceğim, tekrardan teşekkürler.

Rich (BB code):
VIDEO_DXGKRNL_FATAL_ERROR (113)
The dxgkrnl has detected that a violation has occurred. This resulted.
in a condition that dxgkrnl can no longer progress. By crashing, dxgkrnl.
is attempting to get enough information into the minidump such that somebody.
can pinpoint the crash cause. Any other values after parameter 1 must be.
individually examined according to the subtype.
Arguments:
Arg1: 0000000000000019, The subtype of the BugCheck:
Arg2: 0000000000000002.
Arg3: 00000000000010de.
Arg4: 00000000000028a0.

Gördüğün gibi, grafik alt sistemi dxgrnl kurtarılamaz bir hatayla karşılaşıyor ancak açıklama bundan daha fazlasını sağlamıyor ve bu nedenle çağrı yığınını incelememiz gerekiyor. Normal şartlarda bu hatada belli başlı sebepler olur. Misalinde 3 ve 4.parametreler ekran kartını simgeliyorlar 10'de NVIDIA 28A0 4060M'a özel kimlikler. Yığıtlara bakıp devam edersek;

Rich (BB code):
7: kd> !stack
Call Stack : 8 frames.
## Stack-Pointer Return-Address Call-Site
00 ffffe1899f41f6b8 fffff80561215745 nt!KeBugCheckEx+0
01 ffffe1899f41f6c0 fffff805610148ac watchdog!WdLogSingleEntry5+3c05 (perf)
02 ffffe1899f41f770 fffff80560f61a56 dxgkrnl!DpiFdoHandleDevicePower+b2e3c (perf)
03 ffffe1899f41f820 fffff80560f634e1 dxgkrnl!DpiFdoDispatchPower+16
04 ffffe1899f41f850 fffff8058a8caf1b dxgkrnl!DpiDispatchPower+e1
05 ffffe1899f41f970 ffffb88cf632aaa0 nvlddmkm+caaf1b (leaf)

Ekran kartının bizzat sürücü tarafından başlatılan çağrı yığının grafik alt sisteminde bir güç yönetimi çağrıları sonrası Watchdog'un devreye girmesiyle durduğunu ve mavi ekrana girdiğini görüyoruz. Bunu buradan bakarak da anlayabiliriz ama aygıt nesnelerinden ilerleyip o anda yürütülen istek paketlerinin ne olduğunu ve sorunun ne bağlamında ortaya çıktığını anlamaya çalışabiliriz.

Ondan önce, failirebucketıd'den dikkatimi çeken bir noktaya değinmek istiyorum:

Kod:
FAILURE_BUCKET_ID: 0x113_19_nvlddmkm!unknown_function

'Unknown_function' eki, sürücüdeki (nvlddmkm.sys) bir işlevin çağrıldığı ancak işlevin mevcut olmadığı anlamına geliyor. Bu genellikle bir sürücü hatasıdır, işlev işaretçileri bozulmuştur ya da gerçek bir bilinmeyen işlev çağrılmıştır diyebiliriz ama ondan önce dediğim gibi devam edelim.

[CODE lang="rich" highlight="4"]7: kd> !devobj ffffb88cfaa36030.
Device object (ffffb88cfaa36030) is for:
InfoMask field not found for _OBJECT_HEADER at ffffb88cfaa36000.
\Driver\nvlddmkm DriverObject ffffb88cfb4029c0.
Current Irp 00000000 RefCount 0 Type 00000023 Flags 00002004.
SecurityDescriptor ffff94044f3805e0 DevExt ffffb88cfaa36180 DevObjExt ffffb88cfaa377f8.
ExtensionFlags (0000000000)
Characteristics (0x00000100) FILE_DEVICE_SECURE_OPEN
AttachedTo (Lower) ffffb88cf1c54e10 \Driver\ACPI
[/CODE]

[CODE lang="rich" highlight="7,37,42"]7: kd> drvobj ffffb88cfb4029c0 7
Couldn't resolve error at 'rvobj ffffb88cfb4029c0 7'.
7: kd> !drvobj ffffb88cfb4029c0 7
fffff8055b63ff78: Unable to get value of ObpRootDirectoryObject
fffff8055b63ff78: Unable to get value of ObpRootDirectoryObject
Driver object (ffffb88cfb4029c0) is for:
\Driver\nvlddmkm

DriverEntry: fffff8058e1b42f0 nvlddmkm.
DriverStartIo: 00000000.
DriverUnload: fffff8058b23dbe0 nvlddmkm.
AddDevice: fffff8058b23bc80 nvlddmkm.

Dispatch routines:
[00] IRP_MJ_CREATE fffff8058b23c190 nvlddmkm+0x161c190
[01] IRP_MJ_CREATE_NAMED_PIPE fffff8058b23c190 nvlddmkm+0x161c190
[02] IRP_MJ_CLOSE fffff8058b23c190 nvlddmkm+0x161c190
[03] IRP_MJ_READ fffff8058b23c190 nvlddmkm+0x161c190
[04] IRP_MJ_WRITE fffff8058b23c190 nvlddmkm+0x161c190
[05] IRP_MJ_QUERY_INFORMATION fffff8058b23c190 nvlddmkm+0x161c190
[06] IRP_MJ_SET_INFORMATION fffff8058b23c190 nvlddmkm+0x161c190
[07] IRP_MJ_QUERY_EA fffff8058b23c190 nvlddmkm+0x161c190
[08] IRP_MJ_SET_EA fffff8058b23c190 nvlddmkm+0x161c190
[09] IRP_MJ_FLUSH_BUFFERS fffff8058b23c190 nvlddmkm+0x161c190
[0a] IRP_MJ_QUERY_VOLUME_INFORMATION fffff8058b23c190 nvlddmkm+0x161c190
[0b] IRP_MJ_SET_VOLUME_INFORMATION fffff8058b23c190 nvlddmkm+0x161c190
[0c] IRP_MJ_DIRECTORY_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[0d] IRP_MJ_FILE_SYSTEM_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[0e] IRP_MJ_DEVICE_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[0f] IRP_MJ_INTERNAL_DEVICE_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[10] IRP_MJ_SHUTDOWN fffff8058b23c190 nvlddmkm+0x161c190
[11] IRP_MJ_LOCK_CONTROL fffff8058b23c190 nvlddmkm+0x161c190
[12] IRP_MJ_CLEANUP 00000000.
[13] IRP_MJ_CREATE_MAILSLOT 00000000.
[14] IRP_MJ_QUERY_SECURITY 00000000.
[15] IRP_MJ_SET_SECURITY 00000000.
[16] IRP_MJ_POWER 00000000 <<< Burada kayıtlı bir gönderim rutini yok.
[17] IRP_MJ_SYSTEM_CONTROL 00000000.
[18] IRP_MJ_DEVICE_CHANGE 00000000.
[19] IRP_MJ_QUERY_QUOTA 00000000.
[1a] IRP_MJ_SET_QUOTA 00000000.
[1b] IRP_MJ_PNP 00000000 << IRP'yi işlemek için gönderim rutini yok.
[/CODE]

İşaretlediğim ve yorumladığım rutin, sürücünün kendisiyle ilgili bir hataya tekabül ediyor ve daha çok güç geçişleriyle ilgili olabilir mi dedirtiyor? Bu ve buna benzer bir hatanın daha çok sistemin uykuya geçerken ya da çıkarken olması olası ama direkt olarak oyunun ortasında olması bir tık tuhaflaştırıyor durumu. Lakin baktığım dosya da oyundayken oluşan bir dosya değil gibi.

[CODE highlight="19,23"]7: kd> !irp ffffb88cf632a8b0.
Irp is active with 6 stacks 5 is current (= 0xffffb88cf632aaa0)
No Mdl: No System Buffer: Thread 00000000: Irp stack trace. Pending has been returned.
cmd flg cl Device File Completion-Context
[N/A(0), N/A(0)]
0 2 00000000 00000000 00000000-00000000

Args: 00000000 00000000 00000000 ffffffffc000000e.
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-00000000

Args: 00000000 00000000 00000000 00000000.
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-00000000

Args: 00000000 00000000 00000000 00000000.
[IRP_MJ_POWER(16), IRP_MN_WAIT_WAKE(0)]
0 2 ffffb88cf1c17060 00000000 fffff80560d9b9d0-ffffe1899f41f7b0
Name paged out dxgkrnl!DpiFdoPowerCompletionRoutine
Args: 00000000 00000000 00000000 00000000.
[IRP_MJ_POWER(16), IRP_MN_SET_POWER(2)]

0 e1 ffffb88cfaa36030 00000000 fffff8055acbb410-ffffb88d003e1b38 Success Error Cancel pending.
\Driver\nvlddmkm nt!PopRequestCompletion
Args: 00000000 00000001 00000001 00000000.
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-ffffb88d003e1b38 [/CODE]

Buradaki gönderim rutinleri, çökmenin nedenini tam olarak açıklıyor. [16,0] rutini grafik alt birimine gönderiliyor. Bunun sebebi, ırp'nin bize sistemin cihaza bekleme modundan güç durumuna geçmesini söylediğini ancak cihazın takılıp kaldığını gösteriyor.

Devamında ise ırp_mn_waıt_wake ile basitçe cihaza bir uyandırma sinyali gönderiliyor, bu da sürücüye tam güç durumuna geçmesini söyleyen başka bir güç ırp'si üretiyor. Uyandırma sinyali her şey olabilir. Lakin sonrasında gördüğün gibi \Driver\nvlddmkm hala pending durumda yani takılı durumda. Bu da neden güç problemi olduğunu ve neden sürücü temelli olduğunu gösteriyor. Sürücü takılı kalıyor çünkü.

Bunlara ek olarak sistemin aynı zamanda, PnP ırp'ler için kayıtlı bir işleyici işlevi yok dolayısıyla sürücü bu G/Ç isteğini ele almayı bilmiyor. Kısacası bir PnP ırp gönderiliyor ancak grafik kartı sürücüsü bunu çözemiyor.

Burada yapılacak şeylerden biri de DDU ile sürücünü kaldırıp laptopun destek sayfasına yüklenen NVIDIA sürücüsünü kurmayı denemek. Zira genel sürücülerdense özelleştirilmiş bir sürücü ile denemek en azından daha mantıklı olacaktır. Laptoplarda güç geçişlerinin masaüstü bilgisayarlar kadar başına buyruk olduğunu düşünmüyorum, daha basit ve tek çatı altında toplanan sistemler. Eğer sorun devam ederse direkt olarak işlemcinin gelişmiş güç planlarını bir planda sabitleyip denemeni öneririm.

Bunlardan bağımsız olarak, serviste ne kadar detaylı inceleme yapıldığı muamma. Çok da güvenme. Bunu söylememin sebebi de bu tip hataların anakart problemlerinden çıkması direkt olarak.

Hocam vallaha helal olsun, mükemmel bir şey. 2 haftadır bilgisayarı inceleyen servis hatayı yeni bulmuşken sizin direk anakart problemi olduğunu anlamanız... Sonunda sonuç aldım ve anakartı değiştirdiklerini söylediler. Ben de tamirli ürün istemediğimi söyledim, index'e yönlendireceklerini söylediler. İnşallah index sıkıntı çıkarmaz.
 
Son düzenleyen: Moderatör: