
Bir Windows çekirdek-belediye binasının son analizi, DRIVER_POWER_STATE_FAILURE
mavi bir ölüm ekranı (BSOD) ile sonuçlanan kritik bir hata.
Araştırma, tek bir arızalı sürücünün sistem çapında bir çıkmaza nasıl neden olabileceğini ve sonuçta işletim sistemini çökmeye zorlayacağını ortaya koyuyor.
Bugcheck kodu tarafından tanımlanan hata 0x9F
geri izlendi rassstp.sys
Sürücü, Güvenli Soket Tüneli Protokolü (SSTP) VPN bağlantılarını işlemekten sorumlu bir bileşen.
Hata ayıklama oturumu, kaza sırasında sistem durumunu inceleyerek başladı. . !analyze -v
Windows hata ayıklayıcısındaki güçlü bir teşhis aracı olan komut, hızlı bir şekilde tanımladı. DRIVER_POWER_STATE_FAILURE
.
Bu hata, bir sürücünün belirlenen zaman dilimi içinde güçle ilgili bir G/Ç istek paketine (IRP) yanıt veremediğini gösterir. Bu durumda, zaman aşımı 300 saniyeye ayarlandı.
Bugcheck’in ilk argümanı, sistemin fiş ve oyun (PNP) alt sistemi ile senkronize olmayı beklerken zaman aşımının meydana geldiğini gösterdi.
PNP yöneticisi, donanım ve sürücülerin eklenmesini, kaldırılmasını ve yönetimini koordine etmekten sorumludur. Üçüncü argüman, PNP kilidini tutan belirli iş parçacığına işaret ederek diğer sistem işlemlerinin devam etmesini önledi.
Kök nedenini izlemek
Araştırmacıdan faylanma ipliğine daha fazla araştırma, bunun sistem sürecinde faaliyet gösteren bir PNP cihaz etkinliği çalışanı olduğunu ortaya koydu.
Bu işçi iş parçacığı, bir “sürpriz kaldırma” işlemi ile görevlendirildi WAN Miniport (SSTP)
Ağ Adaptörü. Bu işlem sırasında, iplik PNP motoruna özel bir kilit elde etti (PiEngineLock
) kaldırmanın parazit olmadan ilerleyebileceğinden emin olmak için.
Ancak, işçi ipliği aradığında süreç durdu rassstp.sys
Sürücü, cihazın kaldırılmasının bir kısmını gerçekleştirecek. Sürücü operasyonu tamamlayamadı ve işte bittiğine dair işçi ipliğine asla geri dönmedi.
Sonuç olarak, işçi ipi, kritik olanı tutarak bekleme durumunda kaldı PiEngineLock
300 saniyelik zaman aşımı süresinin tamamı için. Başarısızlığı rassstp.sys
İşçi iş parçacığını serbest bırakmak için sürücü, sistem genelinde bir domino etkisi yarattı.
İle PiEngineLock
Süresiz olarak yapılırsa, PNP alt sistemine erişim gerektiren diğer temel sistem işlemleri engellendi. Analiz, bu kilidi bekleyen diğer üç iş parçacığını tanımladı.
En kritik olarak, bekleyen konulardan biri wininit.exe
Sistem başlatma ve kapatma işleminden sorumlu temel Windows süreci.
Bu iş parçacığı, sistemin güç durumunu geçerek bir sistem kapanması yürütmeye çalışıyordu. Bunu yapmak için, PiEngineLock
Yaklaşan güç değişiminin tüm cihazlarını bilgilendirmek.
Durdurulmuş PNP işçisi zaten kilidi tuttuğundan, kapatma işlemi tamamen durduruldu. Sistemin cihazın kaldırılmasını veya kapatılmasını başlatamayacağı bu kilitlenme senaryosu, daha fazla istikrarsızlığı önlemek için bir hata tetiklemekten başka seçeneği olmayan işletim sistemini bıraktı.
Bu hikayeyi ilginç bul! Daha fazla anında güncellemeler almak için bizi Google News, LinkedIn ve X’te takip edin.