Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows Sürücü Modeli (WDM) veya Çekirdek Modu Sürücü Çerçevesi (KMDF), NDIS veya Storport ile uyumlu sağlam bir sürücü yazmak için, uzman olmanız ve sürücünün G/Ç yöneticisiyle nasıl etkileşim kurduğunu anlamanız gerekir. Bu sürücüleri test etme de aynı derecede karmaşıktır.
Sağlam sürücüler geliştirmek aşağıdaki nedenlerden dolayı zor olabilir:
Sürücüler, tek işlemcili makinelerde bile zaman uyumsuz olarak çalışır.
Sürücüler büyük ölçüde yeniden giriş yaptı.
Sürücüler birçok belirsiz kural kullanır.
Sürücü modelleri evrimseldir ve zamanla eskir.
Cihaz sürücülerini test etme işlemi aşağıdaki nedenlerle sınırlıdır:
Gözlem. Sürücü ve işletim sistemi arasındaki etkileşimde bir hata gözlemleyemezsiniz. Sürücüler örtük kullanım kurallarını ihlal ederek kilitlenmeye veya yanlış davranışa neden olabilir, ancak sürücüleri geliştirirken ve test ederken bir hatanın kök nedenini saptamak zordur.
Kontrol. Normal koşullarda düzgün çalışan sürücüler, yığındaki altındaki bir sürücünün IRP'yi başarısız olması gibi istisnai durumlarda oluşan küçük hatalar olabilir. Bu tür durumları uygulamak zordur, bu nedenle geleneksel test sürücü kodu aracılığıyla hata yollarını yeterli şekilde algılamaz.
SDV, sürücüleri test ederken sahip olduğunuz gözlemi ve denetimi geliştirir. WDM, KMDF, NDIS ve Storport işlevlerinin doğru kullanımına yönelik kurallar tanımlayarak ve sürücünün bu kurallarla uyumluluğunu izleyerek, SDV hataları gözlemleme yeteneğinizi geliştirir. Örneğin, WDM kuralı LowerDriverReturn, belirli durumlarda bir sürücünün dağıtım rutinlerinin her zaman yığındaki alt sürücü tarafından döndürülen değeri döndürmesi gerektiğini belirtir.
SDV ayrıca şunları sağlayarak denetimi artırır:
Çeşitli en kötü durum senaryolarının (işletim sistemi çağrılarının sürekli başarısız olması gibi) gerçekleşebildiği sürücü ortamının düşmanca modeli.
Sürücüdeki tüm olası yürütme yollarını sistematik olarak inceleyen güçlü statik analiz (model denetimiolarak adlandırılır).
SDV, cihaz sürücüleri için temel bir birim testi aracıdır. Bir sürücüyü düşman bir ortama yerleştirir ve sürücü modeli kullanım kurallarının ihlallerini arayarak sürücü aracılığıyla kod yollarını sistematik olarak test eder.
Önemli
SDV artık desteklenmemektedir ve SDV, Windows 24H2 WDK veya EWDK sürümlerinde kullanılamaz. Derleme 26017'den daha yeni olan WDK'lerde kullanılamaz ve Windows 24H2 RTM WDK'ye dahil değildir.
SDV, hâlâ Windows Driver Kit'i (WDK) ve Visual Studio derleme araçları 17.1.5 ile 24 Ekim 2023'te yayımlanan Windows 11, sürüm 22H2 EWDK'yiindirerek kullanılabilir. SDV'yi çalıştırmak için yalnızca Enterprise WDK kullanılması önerilir. Visual Studio'nun son sürümleriyle birlikte standart WDK'nin eski sürümlerinin kullanılması önerilmez, bu da büyük olasılıkla analiz hatalarına neden olur.
Bundan sonra CodeQL, sürücüler için birincil statik analiz aracı olacaktır. CodeQL, kodu sorgulanacak bir veritabanı olarak değerlendiren ve belirli davranışlar, desenler ve daha fazlası için sorgu yazmayı basit hale getiren güçlü bir sorgu dili sağlar.
CodeQL kullanma hakkında daha fazla bilgi için bkz. CodeQL ve Statik Araçlar Logo Testi.