Aracılığıyla paylaş


Sürücü Doğrulayıcı seçenekleri ve kural sınıfları

Bu konu, Sürücü Doğrulayıcı içindeki isteğe bağlı özellikleri ve kural sınıflarını açıklar. Standart ayarları kullanırken dahil edilen seçeneklerin listesi için bkz. Standart ayarlar.

Uyarı

Bazı otomatik denetimler , hangi seçeneklerin belirlendiğinden bağımsız olarak doğrulanan bir sürücüde her zaman gerçekleştirilir. Sürücü hatalı bir IRQL'de bellek kullanıyorsa, spin kilitlerini veya bellek tahsislerini hatalı bir şekilde çağırıyor veya serbest bırakıyorsa, yığınları yanlış değiştiriyor ya da önce zamanlayıcıları kaldırmadan bellek havuzunu boşaltıyorsa, Sürücü Doğrulayıcı bu davranışı algılar. Sürücü kaldırıldığında, Sürücü Doğrulayıcı kaynaklarını düzgün bir şekilde yayınlanmış olup olmadığını denetler.

/ruleclasses ile kural sınıflarını etkinleştirme

Windows 10, sürüm 17627 ve sonraki sürümlerden başlayarak, kural sınıflarını aşağıdaki söz dizimiyle etkinleştirebilirsiniz:

/ruleclasses or /rc [<ruleclass_1> <ruleclass_2> ... <ruleclass_k>]

Birden çok sınıfı etkinleştirirken (aşağıdaki pozitif ondalık tamsayıyla gösterilir), her tamsayıyı bir boşluk karakteriyle ayırdığını unutmayın.

Bu kural sınıfları için açıklamalar aşağıda bulunabilir.

Standart kural sınıfları

Kural sınıfı Ondalık Kimlik
Özel havuz 1
IRQL denetimini zorlama 2
Havuz izleme 4
G/Ç doğrulaması 5
Kilitlenme algılama 6
DMA denetimi 8
Güvenlik denetimleri 9
Çeşitli denetimler 12
DDI uyumluluk denetimi 18
WDF Doğrulaması 34

Ek kural sınıfları

Bu kural sınıfları belirli senaryo testlerine yöneliktir. Kural sınıfları, otomatik olarak etkinleştirilecek olan G/Ç Doğrulaması (5) gerektiren (*) ile işaretlenir. (**) ile işaretlenmiş bayraklar tek tek kuralların devre dışı bırakılması için destek sağlar.

Kural sınıfı Ondalık Kimlik
Rastgele düşük kaynak simülasyonu 3
Bekleyen G/Ç isteklerini zorla (*) 10
IRP günlüğü 11
Yığın (*) için sabit MDL denetimi 14
Sürücü için sabit MDL denetimi (*) 15
Power Framework gecikmesi 16
Bağlantı noktası/miniport arabirimi denetimi 17
Sistematik düşük kaynak benzetimi 19
DDI uyumluluk denetimi (ek) 20
Çekirdek eşitleme gecikmesi yirmi dört
VM sanal anahtar doğrulama Yirmi beş
Kod bütünlüğü denetimleri 26
Sürücü izolasyon denetimleri (gerektirir 36) 33
Ek IRQL denetimi 35
DIF'yi etkinleştirme 36

İsteğe bağlı özellik ve kural sınıfı açıklamaları

Özel Havuz

Bu seçenek etkinleştirildiğinde, Sürücü Doğrulayıcı sürücünün bellek isteklerinin çoğunu özel bir havuzdan ayırır. Bu özel havuz, bellek taşmaları, bellek yetersizlikleri ve serbest bırakıldıktan sonra erişilmeye çalışılan bellek için izlenir.

IRQL Kontrolünü Zorla

Bu seçenek etkinleştirildiğinde, Sürücü Doğrulayıcı disk belleğine alınan kodu geçersiz kılarak sürücüye aşırı bellek baskısı uygular. Sürücü yanlış IRQL'de veya bir döndürme kilidi tutarken disk belleği belleğine erişmeye çalışırsa, Sürücü Doğrulayıcı bu davranışı algılar.

Düşük Kaynak Benzetimi (Windows 8.1'de rastgele düşük kaynak benzetimi olarak adlandırılır)

Bu seçenek etkinleştirildiğinde, Sürücü Doğrulayıcı havuz ayırma isteklerini ve diğer kaynak isteklerini rastgele başarısızlıkla sonuçlandırır. Sürücü Doğrulayıcı, bu ayırma hatalarını sisteme ekleyerek sürücünün düşük kaynak durumuyla başa çıkma yeteneğini test eder.

Havuz İzleme

Bu seçenek etkinleştirildiğinde, Sürücü Doğrulayıcı, sürücü kaldırıldığında tüm bellek ayırımlarının serbest bırakılıp bırakılmadığını kontrol eder. Bu, bellek sızıntılarını ortaya çıkartır.

G/Ç Doğrulaması

Bu seçenek etkin olduğunda, Sürücü Doğrulayıcı sürücünün IP'lerini özel bir havuzdan ayırır ve sürücünün G/Ç işlemesini izler. Bu, G/Ç rutinlerinin yasadışı veya tutarsız kullanımını algılar.

Kilitlenme Algılama

Bu seçenek etkin olduğunda, Sürücü Doğrulayıcı sürücünün spin kilitleri, mutex'ler ve hızlı mutex'ler kullanımını izler. Bu, sürücü kodunun bir noktada kilitlenmeye neden olma olasılığı olup olmadığını algılar.

Gelişmiş G/Ç Doğrulaması

Bu seçenek etkin olduğunda, Sürücü Doğrulayıcı çeşitli G/Ç Yöneticisi yordamlarının çağrılarını izler ve PnP IP'leri, güç IRP'leri ve WMI IRP'leri için stres testi gerçekleştirir. Windows işletim sisteminin Windows 7 ve sonraki sürümlerinde, Gelişmiş G/Ç Doğrulaması'nın tüm özellikleri G/Ç Doğrulaması'nın bir parçası olarak bulunur ve artık Sürücü Doğrulayıcı Yöneticisi'nde veya komut satırında bu seçeneğin belirtilmesi gerekli değildir.

DMA Doğrulaması

Bu seçenek etkin olduğunda, Sürücü Doğrulayıcı sürücünün DMA yordamlarını kullanmasını izler. Bu, DMA arabelleklerinin, bağdaştırıcılarının ve eşleme yazmaçlarının yanlış kullanımını algılar.

Güvenlik Denetimleri

(Windows Vista ve üzeri) Bu seçenek etkin olduğunda, Sürücü Doğrulayıcı çekirdek modu yordamlarına göre kullanıcı modu adreslerine başvuru gibi güvenlik açıklarına neden olabilecek yaygın hataları arar.

Çeşitli Denetimler

(Windows Vista ve üzeri) Bu seçenek etkin olduğunda, Sürücü Doğrulayıcı boş belleğin yanlış işlenmesi gibi sürücü kilitlenmelerinin yaygın nedenlerini arar.

Bekleyen G/Ç İsteklerini Zorla

(Windows Vista ve üzeri) Bu seçenek etkin olduğunda, Sürücü Doğrulayıcı IoCallDriver'a rastgele çağrılar için STATUS_PENDING döndürerek sürücünün STATUS_PENDING dönüş değerlerine verdiği yanıtı test eder.

IRP Günlüğü

(Windows Server 2003 ve üzeri) Bu seçenek etkin olduğunda, Sürücü Doğrulayıcı bir sürücünün IRP kullanımını izler ve IRP kullanımı günlüğü oluşturur.

Storport Doğrulaması

(Windows Vista ve üzeri) Bu seçenek etkin olduğunda, Sürücü Doğrulayıcı dışarı aktarılan Storport yordamlarının yanlış kullanımı, aşırı gecikmeler ve Storport isteklerinin yanlış işlenmesi için bir Storport miniport sürücüsünü izler.

Güç Çerçevesi Gecikme Fuzzing

(Windows 8'den başlayarak) Bu seçenek etkin olduğunda Sürücü Doğrulayıcı, güç yönetimi çerçevesini (PoFx) kullanan sürücülerdeki eşzamanlılık hatalarını temizlemeye yardımcı olmak için iş parçacığı zamanlamalarını rastgele oluşturur. Bu seçenek, güç yönetimi çerçevesini (PoFx) doğrudan kullanmayan sürücüler için önerilmez.

DDI uyumluluk denetimi

(Windows 8'den başlayarak) Bu seçenek etkin olduğunda, Sürücü Doğrulayıcı bir sürücü ile işletim sisteminin çekirdek arabirimi arasındaki doğru etkileşimi denetleen bir dizi cihaz sürücüsü arabirimi (DDI) kuralı uygular.

Sabit MDL Yığını Denetimi

(Windows 8'den başlayarak) Sabit MDL Yığını Denetimi seçeneği, sürücünün sürücü yığını genelinde sabit MDL arabelleklerini nasıl işlediğini izler. Sürücü Doğrulayıcı sabit MDL arabelleklerinde geçersiz değişiklik algılayabilir. Bu seçeneği kullanmak için G/Ç Doğrulaması en az bir sürücüde etkinleştirilmelidir.

Sürücü için Sabit MDL Denetimi

(Windows 8'den başlayarak) Sürücü için Sabit MDL Denetimi seçeneği, sürücünün sürücü başına sabit MDL arabelleklerini nasıl işlediğini izler. Bu seçenek sabit MDL arabelleklerinde geçersiz değişiklik olduğunu algılar. Bu seçeneği kullanmak için en az bir sürücüde G/Ç Doğrulamasını etkinleştirmeniz gerekir.

Yığın Tabanlı Hata Ekleme

(Yalnızca Windows 8 ve WDK 8 ile kullanılabilir) Yığın Tabanlı Hata Ekleme seçeneği, çekirdek modu sürücülerine kaynak hataları ekler. Bu seçenek, sürücü hata işleme yollarına nüfuz etmek için Sürücü Doğrulayıcı ile birlikte KmAutoFail.sysözel bir sürücü kullanır.

Sistematik düşük kaynak simülasyonu

(Windows 8.1'den başlayarak) Sistematik düşük kaynak benzetimi seçeneği, çekirdek modu sürücülerine kaynak hataları ekler.

NDIS/WIFI doğrulaması

(Windows 8.1'den başlayarak) Bu seçenek etkin olduğunda, Sürücü Doğrulayıcı bir NDIS miniport sürücüsü ile işletim sistemi çekirdeği arasındaki doğru etkileşimi denetleen bir dizi NDIS ve kablosuz LAN (WIFI) kuralı uygular.

Çekirdek eşitleme gecikmesi

(Windows 8.1'den başlayarak) Bu seçenek, sürücülerdeki eşzamanlılık hatalarını algılamaya yardımcı olmak için iş parçacığı zamanlamalarını rastgele hale getirir.

VM anahtarı doğrulama

(Windows 8.1'den başlayarak) Bu seçenek, Hyper-V Genişletilebilir Anahtar içinde çalışan filtre sürücülerini (genişletilebilir anahtar uzantıları) izler.

Bağlantı noktası/Miniport arabirimi denetimi

Bağlantı noktası/miniport arabirimi denetimi, Sürücü Doğrulayıcı'nın ks.sys ve AVStream miniport sürücüleriyle birlikte PortCls.sys ve ses miniport sürücüleri arasındaki DDI arabirimini incelemesine olanak tanır. Bkz. AVStream sürücüleri için kurallar ve ses sürücüleri için kurallar.

Kod bütünlüğü denetimi

Kod Bütünlüğünü yalıtmak için sanallaştırma tabanlı güvenlik kullanılırken çekirdek belleğinin yürütülebilir hale gelmesinin tek yolu Kod Bütünlüğü doğrulamasıdır. Bu, çekirdek bellek sayfalarının hiçbir zaman Yazılabilir ve Yürütülebilir (W+X) olamayacağı ve yürütülebilir kodun doğrudan değiştirilemeyeceği anlamına gelir. Kod bütünlüğü denetimleri, bu kod bütünlüğü kurallarının uyumluluğunu sağlar ve ihlalleri algılar.

WDF doğrulaması

WDF Doğrulaması, çekirdek modu sürücüsünün Kernel-Mode Driver Framework (KMDF) gereksinimlerini düzgün bir şekilde karşılıyor olup olmadığını denetler.

Ek IRQL denetimi

Ek IRQL denetimi, PASSIVE_LEVEL için DDI Uyumluluk Denetimi IRQL kurallarını artırır. İki kuraldan oluşur:

  • IrqlIoRtlZwPassive kuralı, sürücünün kuralda listelenen DDI'leri yalnızca IRQL = PASSIVE_LEVEL yürütülürken çağırdığını belirtir.
  • IrqlNtifsApcPassive kuralı, sürücünün kuralda listelenen DDI'leri yalnızca IRQL = PASSIVE_LEVEL veya IRQL <= APC_LEVEL yürütürken çağırdığını belirtir.

Sürücü Yalıtım Denetimleri

Sürücü Yalıtımı denetimleri, Windows Sürücülerinin çalışma zamanı sürücü paketi yalıtım gereksinimlerini doğrulamak için kritik öneme sahiptir. Daha fazla bilgi için bkz. Windows sürücüleri geliştirmeye başlama. Denetimler, yalıtılmış sürücü paketleri için izin verilmeyen kayıt defteri okuma ve yazmalarını izler.

Standart ayarlar

Standart ayarlara dahil edilen seçenekler

Özel Havuz

IRQL Denetimini Zorla

Havuz İzleme

G/Ç Doğrulaması

Kilitlenme Algılama

Gelişmiş G/Ç Doğrulaması (Windows 7 ve sonraki sürümlerde G/Ç Doğrulama'yı seçtiğinizde bu seçenek otomatik olarak etkinleştirilir)

DMA Doğrulaması

Güvenlik Denetimleri

Çeşitli Denetimler (Windows Vista ve üzeri)

DDI uyumluluk denetimi (Windows 8'den başlayarak)

G/Ç Doğrulaması gerektiren Sürücü Doğrulayıcı seçenekleri

Önce G/Ç Doğrulamasını etkinleştirmenizi gerektiren dört seçenek vardır. G/Ç Doğrulaması etkin değilse, bu seçenekler etkinleştirilmez.