Rehber DRIVER_POWER_STATE_FAILURE hatasının çözümüne yönelik temel kısaslar

Katılım
3 Ocak 2018
Mesajlar
17.223
Makaleler
19
Çözümler
475
Yer
Valisiz Vilayet!
Merhaba herkese.

Uzun bir süredir bildiğiniz üzere Mavi Ekran kategorisinde sizlerin yaşadığı sorunları çözmeye çalışıyorum.
Forumda en çok karşılaştığımız hatalardan biri şüphesiz ki DRIVER_POWER_STATE_FAILURE. (0x9F)

Adından başlayarak ne olduğunu öğrenelim. "Sürücü Güç Durum Kusuru/Bozukluğu"

Aygıt sürücülerinin birbirleriyle ve ana sistem sürücüleri ile haberleşmesi için I/O istekleri tanımlanmalıdır. Bu istekler IRP yani I/O Request Packet adı verilen veri yapıları vasıtasıyla tanımlanır. IRP kullanımının avantajı küçük paketleri tek tek iletmek yerine (Buffer bellek adresi vs.) hepsini tek bir potada eriterek kalıcı veri ortamlarına iletmesidir.

Bu IRP'lerin yönetimiyle alakalı belirli fonksiyonlar vardır. Aşağıda verdiğim linki okuyarak daha ayrıntılı bilgi edinebilirsiniz.


Günümüzde kullandığımız bileşenlerin çok büyük bir çoğunluğu ACPI tabanlı PnP yani Tak ve Çalıştır yöntemini kullanır. (ACPI, Legacy PnP'nin halefidir.)

Bu konulardan bahsetmemin sebebini ilerleyen kısımlarla anlayacaksınız.

Ufak ufak bir döküm incelemesi ile başlayalım.

image_2025-05-25_105935819.png


Buradaki Argumentları yorumlayalım.

Arg1 için belirli türler var. Bunların ne olduğunu görebilmeniz adına aşağıya link ekledim.

Arg1: İhlalin (Violation) türünü belirtir. Burada ise 0x3 söz konusu.
03 (0x3) bir aygıt objesinin, IRP'yi normalden uzun süre engellediğini belirtir.

Kod:
DRIVER_POWER_STATE_FAILURE (9f)
A driver has failed to complete a power IRP within a specific time.
Arguments:
Arg1: 0000000000000004, The power transition timed out waiting to synchronize with the Pnp subsystem.
Arg2: 000000000000012c, Timeout in seconds.
Arg3: ffffc00603862040, The thread currently holding on to the Pnp lock.
Arg4: ffff9a034a029880, nt!TRIAGE_9F_PNP on Win7 and higher

Buraya örnek olarak koyduğum bir dökümde ise 0x4 söz konusu.
Bu da güç geçişinin (iletiminin) PnP alt sistemiyle senkronize olamadığını gösteriyor. Yani aygıtın güç iletimi yapılmasına rağmen PCIe arayüzüyle senkronize olamıyor.
Bu ise sisteme aslında cihazın var olup olmadığını sorgulatabilir. Stack textinde IoSurpriseRemoval gibi bir ifade görürseniz, sistemin bu durumla karşı karşıya olduğunu anlayabilirsiniz.

Arg2: Bir aygıt objesinin (PDO) IRP engellemesi durumu söz konusuysa bu aygıtın ne olduğunu Arg2'yi yorumlayarak öğrenebiliriz.

Arg3: Her fonksiyon, desteklediği her bir cihaz için ayrı ayrı bir çerçeve sürücü oluşturur. Oluşturulma amacı PnP aygıtlarını, güç durumlarını sisteme kaydetmektir.
Not: Arg3 sorgulaması her zaman çalışmamaktadır.

Arg4: İletilmesi engellenen IRP'yi ifade eder.

Arg2'yi yorumlayarak çözümde ilerlemeye çalışalım.
image_2025-05-25_111154290.png


Arg2'yi !devstack komutunu kullanarak sorguladığımızda karşımıza PCI\VEN_10EC&DEV_5287&SUBSYS_85351558&REV_01\4&d21dafc&0&00EE kimliği çıktı.
Bu kimlik Realtek RTS 5287 PCIe Card Reader aygıtına işaret etti.

Arg4'ü yorumlayalım.
image_2025-05-25_111436385.png


Yukarıda linkini ilettiğim bazı IRP fonksiyonları vardı. Burada gördüğünüz IRP_MJ_POWER(16) gücün taşındığını belirten Power IRP, IRP_MN_SET_POWER(02) ise bu güç fonksiyonunun altında çalışan bir fonksiyon. Güç durumuyla alakalı bir değişiklik olup olmadığını sorgular.

Bu dökümden çıkarabileceğimiz sonuç şu:

Realtek SD kart okuyucusunun güç durumuyla alakalı IRP'nin iletimi sekteye uğramış. Bu nedenle de hatalı bir güç durumunda kaldığından sistem hata vermiş.

Bazen Power IRP hiçbir şekilde iletilmez, güç kesintisi yaşanırsa da bu hata oluşabilir.
Örnek bir döküm:

image_2025-05-25_113416531.png

image_2025-05-25_113446335.png


image_2025-05-25_113641394.png


16/0 durumu var. Intel Graphics sürücüsünün uyanması, yanıt vermesi beklenmiş. Ancak yanıt gelmemiş.
Power IRP'nin iletimi hiçbir şekilde başlamıyor ve güç kesiliyor.

Bu nedenle de sistem hataya düşüyor.


Not: Çok aşırı teknik detaya boğmak istemediğim için biraz yüzeysel yazdım. Daha ayrıntılı öğrenmek isterseniz Microsoft Learn üzerindeki makaleleri okumanız çok daha pozitif olacaktır.


Bu hatanın çözümüne yönelik ufak da olsa bir katkı sunabilmişimdir umarım.
Bir sonraki yazıda görüşmek üzere.
 

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Yeni konular

Geri
Yukarı