Aracılığıyla paylaş


Desteklenen Sürücüler

SDV'nin bir sürücüyü doğrulaması için sürücü kodunu, özellikle de sürücünün giriş noktalarını ve gerekli sürücü işlevselliğini destekleyen işlev ve yordamlardaki kodu yorumlayabilmesi gerekir.

Aşağıdaki bölümlerde sürücüler için temel gereksinimler ve SDV'nin doğrulandığı sürücülerden beklediği belirli söz dizimi açıklanmaktadır. SDV, sürücülerin bu gereksinimlere uyduğunu doğrulamaz, ancak sürücü uyumlu değilse, SDV çalışmayabilir ve nadir durumlarda yanlış yorum nedeniyle hatalı pozitif veya yanlış negatif sonuçlar bildirir.

Ö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, Windows Sürücü Seti'ni (WDK) İndirme sayfasından Visual Studio derleme araçları 17.1.5 ile Windows 11, sürüm 22H2 EWDK (24 Ekim 2023'te yayımlandı) indirilerek 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.

Temel Sürücü Özellikleri

SDV yalnızca aşağıdaki özelliklere sahip sürücüleri doğrulayabilir:

Temel Sürücü Gereksinimleri

SDV'nin bir WDM sürücüsünü doğrulaması için sürücü şunları yapmalıdır:

SDV'nin bir KMDF sürücüsünü doğrulaması için sürücünün şunları yapması gerekir:

SDV'nin bir NDIS sürücüsünü doğrulaması için sürücünün şunları yapması gerekir:

Ayrıca, SDV aşağıdakileri destekleyen sürücüleri doğrulayabilir:

Ayrılmış İşlev Adları

Sürücü veya kitaplık kodu SDV'nin dahili olarak kullandığı işlev adı desenlerini kullandığında SDV doğrulama altyapısı düzgün çalışmaz.

Özellikle, SDV aşağıdakiler durumunda kodu doğru yorumlamaz:

  • Kod, __init ile başlayan ve ardından __init123 gibi bir veya daha fazla tamsayı içeren işlev adlarını içerir.

  • Kod, sdv_Func gibi sdv_ ile başlayan veya Func_sdv_ veya Func_sdv_foo gibi _sdv_ dizesini içeren işlev adlarını içerir.

  • Kitaplık, dışarı aktarılan bir işlevi yeniden adlandırmak için bir .def dosya kullanır ve dış ad, kitaplıktaki başka bir statik işlevin adıyla aynıdır.

Sürücü kodu veya kitaplık kodu bu öğeleri içeriyorsa, SDV sürücüyü doğrulamayı veya kitaplığı işlemeyi dener, ancak sonuç Desteklenmiyor Özelliği (NSF) olur. SDV sonuçları hakkında daha fazla bilgi için bkz. Statik Sürücü Doğrulayıcı Sonuçlarını Yorumlama.