Aracılığıyla paylaş


Çeşitli kural kümesi (WDM)

Sürücünüzün kayıt defteri anahtarlarının, dizelerinin ve cihaz nesne işaretçilerinin düzgün işlenmesi için genel bir gereksinim kümesine doğru şekilde uyduğunu doğrulamak için bu kuralları kullanın.

Bu bölümde

Konu Açıklama

AddDevice

AddDevice kuralı, sürücünün AddDevice yordamının yalnızca IoCreateDevice çağrıldıktan sonra IoAttachDeviceToDeviceStack'i çağırdığını belirtir.

DanglingDeviceObjectReference

DanglingDeviceObjectReference kuralı, sürücünün IoGetAttachedDeviceReference tarafından döndürülen aynı cihaz nesne işaretçisiyle ObDereferenceObject'i çağırdığını belirtir.

PnpSameDeviceObject

PnpSameDeviceObject kuralı, sürücünün geçerli bir hedef cihaz nesnesine işaretçiyle IoAttachDeviceToDeviceStack çağırdığını belirtir.

TargetRelationNeedsRef

TargetRelationNeedsRef kuralı, targetDeviceRelation sorgusunu işlerken sürücünün DispatchPnP yordamının alt cihazın PDO'sunu başvurmak için aşağıdaki işlevlerden birini çağırdığını belirtir:

UnSafeAllocatePool

UnSafeAllocatePool , bir sürücünün bellek ayırmak için kullanım dışı DDI kullanmadığını denetleyen önemli bir güvenlik kuralıdır.

ZwRegistryCreate

ZwRegistryCreate kuralı, ZwCreateKey çağrıldıktan sonra sürücünün yalnızca kayıt defteri anahtarında açık bir tanıtıcı tutarken (yani, kayıt defteri anahtarının tanıtıcısını kapatmak veya silmek için ZwClose veya ZwDeleteKey'e yapılan çağrılardan önce) aşağıdaki kayıt defteri işlevlerini çağırabileceğini belirtir:

ZwRegistryOpen

ZwRegistryOpen kuralı, ZwOpenKey çağrıldıktan sonra sürücünün yalnızca bir kayıt defteri anahtarının açık tanıtıcısını tutarken (yani ZwClose veya ZwDeleteKey çağrılmadan önce) aşağıdaki kayıt defteri işlevlerini çağırdığını belirtir:

Çeşitli kural kümesini seçmek için

  1. Microsoft Visual Studio'da sürücü projenizi (.vcxProj) seçin. Sürücüsü menüsünde tıklayın, Statik Sürücü Doğrulayıcıyı Başlat....

  2. Kurallar sekmesine tıklayın. Kural Kümeleri'nin altında Çeşitli'yi seçin.

    Visual Studio geliştirici komut istemi penceresinden varsayılan kural kümesini seçmek için /check seçeneğiyle Miscellaneous.sdv belirtin. Örneğin:

    msbuild /t:sdv /p:Inputs="/check:Miscellaneous.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
    

    Daha fazla bilgi için Sürücülerdeki Hataları Bulmak için Statik Sürücü Doğrulayıcı Kullanma ve Statik Sürücü Doğrulayıcı Komutları (MSBuild)bölümüne bakın.