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.
Çerçeve, çalışan bir KMDF sürücüsünü test etmek için kullanabileceğiniz yerleşik doğrulama işlevselliği sağlar. KMDF Doğrulayıcı olarak adlandırılan bu işlevsellik, sürücünüzün durumunu ve sürücünün çerçeve nesne yöntemlerine geçirdiği bağımsız değişkenleri kapsamlı bir şekilde doğrular. Çerçevenin doğrulayıcısını kendi başına veya genel amaçlı Sürücü Doğrulayıcı (Verifier.exe) aracıyla birlikte kullanabilirsiniz.
KMDF Doğrulayıcı etkinleştirildiyse, çerçeve kilit alma ve hiyerarşileri denetler, çerçeveye yapılan çağrıların doğru IRQL'de gerçekleşmesini sağlar, doğru G/Ç iptalini ve kuyruk kullanımını doğrular ve sürücü ile çerçevenin belgelenen sözleşmeleri izlemesini sağlar. Sürücü geliştiricisinin, sürücünün kilitlenmeden, asılı kalmadan veya kaldırılmadan düzgün yanıt verip vermediğini test edebilmesi için yetersiz bellek koşullarını da simüle edebilir.
KMDF Doğrulayıcı etkinleştirildiğinde, daha önce açıklanan bazı olaylar tamamlanmadan varsayılan 60 saniyelik zaman aşımı süresi dolarsa, çerçeve hata ayıklayıcıya girer. Bu noktada, sorunun hatalarını ayıklayabilir veya zaman aşımı süresini yeniden başlatmak için hata ayıklayıcıya "g" yazabilirsiniz. Doğrulayıcının Davranışını Denetlemebölümünde açıklanan DbgWaitForSignalTimeoutInSec kayıt defteri değerini kullanarak varsayılan zaman aşımı süresini değiştirebilirsiniz.
Test sırasında Sürücü Doğrulayıcı 'yı (Verifier.exe) çalıştırmanızı ve doğrulama listesine kendi sürücünüzü ve wdf01000.sys eklemenizi öneririz.
Uyarı
KMDF Doğrulayıcı, Sürücü Doğrulayıcı'nın /standard ayarları kullanılırken otomatik olarak etkinleştirilir.
/flags sürücü doğrulayıcı ayarı yerine /standard kullanıyorsanız, Windows 10, sürüm 1803 veya daha yeni derlemelerde /flags/ruleclassesiçin kullanım dışı bırakıldığını unutmayın. WDF için kural sınıfı 34'dür.
/standard kullanılmadığında WDF doğrulayıcısını etkinleştirmek için /ruleclasses 34kullanın.
KMDF Doğrulayıcı'yı etkinleştirmek ve devre dışı bırakmak için WDF Doğrulayıcı Denetim Uygulaması (WdfVerifier.exe) de kullanabilirsiniz.
Çerçevenin Yerleşik Doğrulamasını Etkinleştirme ve Devre Dışı Bırakma
Şu yordamı kullanarak KMDF Doğrulayıcı'yı el ile etkinleştirebilirsiniz:
Sürücünüz zaten yüklüyse, cihazı devre dışı bırakmak için Cihaz Yöneticisi'ni kullanın. Cihazın devre dışı bırakılması, sürücünün kaldırılmasına yol açar.
RegEdit kullanarak, Windows kayıt defterindeki HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services anahtarının Parameters\Wdf alt anahtarında bulunan VerifierOn değerini sıfır olmayan bir sayıya ayarlayın. Sıfır olmayan bir değer KMDF Doğrulayıcı'nın etkinleştirildiğini gösterir.
Eğer henüz mevcut değilse, alt anahtara manuel olarak VerifierOn eklemeniz gerekebilir.
Cihazı yeniden etkinleştirmek ve sürücüyü yüklemek için Cihaz Yöneticisi'ni kullanın.
Sürücü WdfDriverCreate çağırdığında, çerçeve kayıt defterini inceler ve VerifierOn sıfır olmayan bir değer aldığında çerçevenin doğrulayıcısını etkinleştirir.
Çerçevenin doğrulayıcısını devre dışı bırakmak için aynı adımları izleyin, ancak VerifierOn değerini sıfır olarak ayarlayın.
Çerçevenin doğrulayıcısının etkinleştirilip etkinleştirilmediğini belirlemek için, sürücünüz WdfDriverUdfDriverOluştur çağırdıktan sonra bir konumda kesme noktası ayarlayın ve !wdfdriverinfo hata ayıklayıcı uzantısı komutunu kullanın:
!wdfkd.wdfdriverinfo<sürücü adınız> **** 0x1
Hata ayıklayıcısı uzantısı komutları hakkında daha fazla bilgi için bkz. Framework Tabanlı Sürücüler için Hata Ayıklayıcı Uzantıları.
Doğrulayıcının Davranışını Denetleme
Aşağıdaki seçenekleri denetlemek için WDF Doğrulayıcı denetim uygulaması kullanmanızı öneririz. Ancak, kayıt defterinde aşağıdaki değerleri doğrudan değiştirebilirsiniz.
İlgili değerler, HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services anahtarının Parameters\Wdf alt anahtarı altında bulunur.
VerifyOn (REG_DWORD)
WDFVERIFYmakrosununetkinleştirmek için bu değeri sıfır olmayan bir değere ayarlayın.
DbgBreakOnError (REG_DWORD)
Bu değer sıfır olmayan bir değere ayarlanırsa, bir sürücü WdfVerifierDbgBreakPoint çağırdığında, (varsa) çerçeve hata ayıklayıcıya girer.
DbgWaitForSignalTimeoutInSec (REG_DWORD)
Windows 8'den itibaren, VerifierOn ve DbgBreakOnError sıfır olmayan değerlere ayarlandığında, sürücü DbgWaitForSignalTimeoutInSecayarlayarak varsayılan zaman aşımı süresini değiştirebilir.
VerifierAllocateFailCount (REG_DWORD)
Bu değer n bir değere ayarlanırsa çerçeve, n. ayırma işleminden sonra sürücünün nesneleri için bellek ayırma girişiminde başarısız olur.
İzlemeTutanakları (REG_COKLU_SZ)
Bu değer, çerçeve nesne tanıtıcılarının bir veya daha fazla tür adından oluşan bir listeye ayarlanırsa, çerçeve belirtilen tanıtıcı türleriyle eşleşen tüm nesne tanıtıcılarına yapılan başvuruları izler.
EnhancedVerifierOptions (REG_DWORD)
KMDF yalnızca
Çerçevenin doğrulayıcısının isteğe bağlı özelliklerini etkinleştirmek için kullanabileceğiniz bir bit eşlem içerir.
VerifyDownLevel (REG_DWORD)
Sıfır olmayan bir değere ayarlanırsa ve sürücü çerçevenin geçerli sürümden daha eski bir sürümüyle oluşturulmuşsa, çerçevenin doğrulayıcısı sürücü oluşturulduktan sonra eklenen testleri içerir.
Genel bir kural olarak, yukarıdaki kayıt defteri değerlerini ayarlarsanız, artık gerekli olmadığında bunları silin.
Bu kayıt defteri değerlerinin tam açıklamaları için bkz. Framework Tabanlı Sürücülerde Hata Ayıklama için Kayıt Defteri Değerleri.