Aracılığıyla paylaş


UMDF Sürücüsünün Hata Ayıklamasını Etkinleştirme

Geliştirme sırasında bir User-Mode Driver Framework (UMDF) sürücüsünde hata ayıklamak için aşağıdaki yapılandırmaları kullanabilirsiniz. Tüm yapılandırmalar bir konak ve bir hedef olmak üzere iki makine içerir.

  • Sürücüyü hedefe el ile kopyalayın. Hedefte kullanıcı modu hata ayıklaması gerçekleştirin. Bu senaryoda, hedefte çalışan sürücü ana bilgisayar işleminin bir örneğine manuel olarak bağlanırsınız.
  • Sürücüyü hedef cihaza el ile kopyalayın ve ardından ana bilgisayardan çekirdek modu hata ayıklaması gerçekleştirin.

Tüm UMDF sürücü testlerini ve geliştirmelerini bir çekirdek hata ayıklayıcısı ekli olarak yapmanızı öneririz.

En İyi Yöntemler

Tüm UMDF sürücü testlerini bir çekirdek hata ayıklayıcısı ekli olarak yapmanızı öneririz.

Aşağıdaki ayarlar önerilir. Bu ayarları el ile ayarlayabilir veya bu ayarları görüntülemek veya değiştirmek için WDK'deki WDF Doğrulayıcı Denetim Uygulaması (WDFVerifier.exe) aracını kullanabilirsiniz.

  • WUDFHost.exeüzerinde Uygulama Doğrulayıcı'yı etkinleştirme:

    AppVerif –enable Heaps Exceptions Handles Locks Memory TLS Leak –for WudfHost.exe
    

    Özel durumlar oluşursa, Uygulama Doğrulayıcı tanılama mesajlarını hata ayıklayıcıya gönderir ve işlem duraklatılır.

  • Çekirdek modu hata ayıklama oturumu kullanıyorsanız, HostFailKdDebugBreak değerini, sürücü ana bilgisayar işlemini sonlandırmadan önce yansıtıcının hata ayıklayıcı çekirdek moduna girmesi için ayarlayın. Bu ayar, Windows 8'den başlayarak varsayılan olarak etkindir.

  • UmdfHostProcessSharing ayarını ProcessSharingDisabled olarak ayarlayarak havuzu devre dışı bırakabilirsiniz. Bilgi için bkz. INF Dosyalarında WDF Yönergelerini Belirtme.

  • Varsayılan olarak, bir UMDF cihazı başarısız olduğunda, çerçeve cihazı en fazla beş kez yeniden başlatmayı dener. DebugModeFlags ayarını 0x01 olarak ayarlayarak otomatik yeniden başlatmayı kapatabilirsiniz. Daha fazla bilgi için, WDF Sürücüleri Hata Ayıklama Kayıt Defteri Değerleri’ne bakınız .

  • Bilgisayarınızı yeniden başlatın.

  • UMDF sürücü sorunlarını gidermek için Yansıtıcının Konak İşlemini Neden Sonlandırdığını Belirleme ve UMDF Sürücüsü Çökme Hatalarını Ayıklama bölümlerini gözden geçirin

El ile eklemek için WinDbg kullanma (kullanıcı modu hata ayıklama)

Hedef makinede WinDbg'yi sürücüyü barındıran WUDFHost örneğine el ile ekleyebilirsiniz. Eklediğinizde hata ayıklayıcıya girersiniz ve sürücünüzde kesme noktaları ayarlayabilirsiniz.

Sürücü başlatma WUDFHost yükledikten kısa bir süre sonra gerçekleştiği için başlatma kodunun hatalarını ayıklamak için el ile ekleyemezsiniz. Bunun yerine, konak işleminin konak başlatma veya sürücü yükleme zamanında birkaç saniye beklemesine neden olacak bir kayıt defteri değeri ayarlayın. Bu gecikme, WinDbg'yi WUDFHost işleminin doğru örneğine eklemek için size zaman verir.

Şu adımları izleyin:

  1. Hedef bilgisayardaki kayıt defterinde HostProcessDbgBreakOnStart veya HostProcessDbgBreakOnDriverLoad değerini birkaç saniye olarak ayarlayın ve yeniden başlatın.
  2. Hedef bilgisayarda WinDbg'yi Yönetici olarak açın.
  3. Dosya menüsünde İşleme Ekle'yi seçin. Yürütülebilir Dosyaya Göre'yi seçin ve WUDFHost.exe adlarına sahip tüm işlemleri bulun (herhangi bir işlem olmayabilir). WUDFHost.exeadlı işlemler varsa, ileride başvurmak üzere işlem tanımlayıcılarını yazın.
  4. Cihaz Yöneticisi'nde sürücüyü etkinleştirin.
  5. 2. adımı yineleyin ve yeni bir WUDFHost.exeörneği bulun. yeni bir WUDFHost.exeörneği görmüyorsanız İptal'i ve ardından İşleme Ekle'yi yeniden seçin. yeni WUDFHost.exeörneğini bulduğunuzda seçin ve Tamam'ı seçin.

Cihaz havuzu kullanımdaysa ve HostProcessDbgBreakOnDriverLoad kayıt defteri değerini ayarlarsanız, diğer sürücülerin yüklenmesi nedeniyle hata ayıklayıcı duraksamaları görebilirsiniz. UMDF hata ayıklama modunu kullanarak cihaz havuzunu kapatabilirsiniz.

Hata ayıklama modunu kullanmak için Visual Studio'da F5 seçeneğini kullanın veya kayıt defterinde DebugModeFlags ve DebugModeBinaries değerlerini ayarlayın.

UMDF kayıt defteri değerleri hakkında ayrıntılı bilgi için bkz. WDF Sürücülerinde Hata Ayıklama (KMDF ve UMDF) için Kayıt Defteri Değerleri.

Konak makineden uzaktan hata ayıklamak için WinDbg kullanma (çekirdek modu hata ayıklama)

Uzak bir ana bilgisayardan çekirdek modu hata ayıklama oturumu kurun. Ardından geçerli işlemi sürücünüzü barındıran Wudfhost örneğine ayarlayın. Bir uzak çekirdek hata ayıklayıcısından hata ayıklıyorsanız, zaman aşımını belirtmeden çekirdek hata ayıklayıcısına girmek için HostProcessDbgBreakOnDriverStart veya HostProcessDbgBreakOnDriverLoad değerini 0x80000000 olarak ayarlayın.

Şu adımları kullanın:

  1. Havuzlamayı devre dışı bırakın. DebugModeFlags'ı açın ve DebugModeBinaries'de sürücünüzü listeleyin.

  2. Sürücünüz UMDF 1.11 veya sonraki bir sürümü kullanıyorsa HostFailKdDebugBreak varsayılan olarak etkindir. Bu adımı atlayın.

    Sürücünüz UMDF 1.9 veya önceki bir sürüm kullanıyorsa HostFailKdDebugBreak değerini 1 olarak ayarlayın.

  3. Eğer zaman aşımlarıyla ilgili sorunları ayıklarken, HostProcessDbgBreakOnDriverStart ve HostProcessDbgBreakOnDriverLoad işlevlerini kapatın. (HostProcessDbgBreakOnDriverStart veya HostProcessDbgBreakOnDriverLoad sıfırdan farklıysa, çerçeve zaman aşımlarını devre dışı bırakır, böylece kullanıcı modu hata ayıklayıcı konağa bağlıyken yansıtıcı konak işlemini sonlandırmaz.) Sürücü başlatma kodunda hata ayıklamanız gerekiyorsa, bu iki değeri kullanmak yerine, sürücünüz yüklenmeden önce WinDbg'de aşağıdaki komutu uygulamayı deneyin: sxe ld:MyDriver.dll (modül yüklenirken durdur)

  4. Kayıt defteri değişiklikleri yaptıysanız yeniden başlatın.

  5. Önceki adımlarda yaptığınız seçimlere bağlı olarak, sürücü hedefte yüklendiğinde veya kaldırıldığında uzak çekirdek hata ayıklayıcınız devreye girer.