Aracılığıyla paylaş


Havuz İzleme

Havuz İzleme, sürücü tarafından yapılan bellek ayırmalarını izler. Sürücü kaldırıldığında, Sürücü Doğrulayıcı sürücü tarafından yapılan tüm ayırmaların serbest kalmasını sağlar.

Seyrek bellek ayırmaları ( bellek sızıntıları olarak da adlandırılır), düşük işletim sistemi performansının yaygın bir nedenidir. Bunlar sistem havuzlarını parçalayabilir ve sonunda sistem kilitlenmelerine neden olabilir.

Bu seçenek etkin olduğunda, sürücü tüm ayırmalarını boşaltmadan kaldırılırsa Sürücü Doğrulayıcı hata denetimi 0xC4 (Parametre 1 0x62'a eşit) oluşturur.

Sürücü Doğrulayıcı bu hata denetimini Parametre 1 ile 0x51, 0x52, 0x53, 0x54 veya 0x59 eşit olarak verirse, sürücü ayırmalarının dışında belleğe yazmıştır. Bu durumda, hatanın kaynağını bulmak için Özel Havuz özelliğini etkinleştirmeniz gerekir.

Hata denetimi parametrelerinin listesi için bkz . Hata Denetimi 0xC4 (DRIVER_VERIFIER_DETECTED_VIOLATION).

Windows Vista'dan başlayarak Havuz İzleme seçeneğinin etkinleştirilmesi, kilitli sayfaların izlenmesini de sağlar. Bu seçenek etkin olduğunda, sürücü G/Ç işleminden sonra kilitli sayfaları serbest bırakamazsa Sürücü Doğrulayıcı Hata Denetimi 0xCB (DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS) oluşturur.

Windows işletim sisteminin Windows 7 ve sonraki sürümlerinde Havuz İzleme seçeneği aşağıdaki çekirdek API'leri kullanılarak ayrılan belleği destekler:

Windows işletim sisteminin Windows 7 ve sonraki sürümlerinde, Havuz İzleme etkinleştirildiğinde, Sürücü Doğrulayıcı Boşta işlemi bağlamında kota ile çekirdek havuzu belleği ayırma girişimlerini algılayabilir. Bu tür girişimler genellikle sürücünün DPC yordamından bellek ayırdığını gösterir. DPC yordamları için iş parçacığı veya işlem bağlamı güvenilir değildir, bu nedenle bu işleme kota ücretlendirmeye çalışmak yanlıştır.

İzleme Havuzu Takibi

Doğrulanan her sürücü için bellek havuzu ayırma istatistikleri ayrı ayrı izlenebilir. Bu istatistikler Sürücü Doğrulayıcı Yöneticisi, Verifier.exe komut satırı veya günlük dosyasında görüntülenebilir. Ayrıntılar için bkz. Tek Tek Sayaçları İzleme .

Çekirdek hata ayıklayıcı uzantısı !verifier 0x3, sürücü kaldırıldıktan sonra kapatılmamış bellek tahsislerini bulmak veya sürücü çalışırken mevcut tahsisleri izlemek için kullanılabilir. Bu uzantı ayrıca havuz etiketini, havuzun boyutunu ve her tahsisat için tahsis edicinin adresini gösterir. Hata ayıklayıcı uzantıları hakkında bilgi için bkz. Windows Hata Ayıklama.

DPC Rutini'nden Havuz Kotası Ücretleri

Çekirdek sürücüleri, çekirdek havuzu belleği ayırmak ve geçerli işlemin havuz kotasına ayrılan bayt sayısını ücretlendirmek için ExAllocatePoolWithQuotaTag'ı çağırabilir. Sürücüler genellikle bir uygulamadan gelen istekle doğrudan ilişkili bellek ayırmaları için kota kullanır.

Ertelenmiş yordam çağrısı (DPC) yordamları herhangi bir işlem bağlamında çalıştırılabilir. Bu nedenle, bir DPC rutininden kota ücretlendirme, rastgele bir işlem olmuş olur. Daha da kötüsü, DPC rutinleri Idle process bağlamında çalıştığında, bu durum bellek bozulmasına veya sistem çökmesine neden olabilir.

Windows 7'den başlayarak Sürücü Doğrulayıcı, DPC yordamlarından ExAllocatePoolWithQuotaTag çağrılarını algılar.

Bu Seçeneği Etkinleştir

Sürücü Doğrulayıcı Yöneticisi'ni veya Verifier.exe komut satırını kullanarak bir veya daha fazla sürücü için Havuz İzleme özelliğini etkinleştirebilirsiniz. Ayrıntılar için bkz. Sürücü Doğrulayıcı Seçeneklerini Seçme.

  • Komut satırında

    Komut satırında Havuz İzleme seçeneği Bit 3 (0x8) ile gösterilir. Havuz İzleme'yi etkinleştirmek için 0x8 bayrak değerini kullanın veya bayrak değerine 0x8 ekleyin. Örneğin:

    verifier /flags 0x8 /driver MyDriver.sys
    

    Özellik bir sonraki önyüklemeden sonra etkin olacaktır.

    Windows Vista ve windows'un sonraki sürümlerinde, komutuna /volatile parametresini ekleyerek bilgisayarı yeniden başlatmadan Havuz İzleme'yi etkinleştirebilir ve devre dışı bırakabilirsiniz. Örneğin:

    verifier /volatile /flags 0x8 /adddriver MyDriver.sys
    

    Bu ayar hemen etkindir, ancak bilgisayarı kapattığınızda veya yeniden başlattığınızda kaybolur. Ayrıntılar için bkz. Geçici Ayarları Kullanma.

    Havuz İzleme özelliği standart ayarlara da dahildir. Örneğin:

    verifier /standard /driver MyDriver.sys
    
  • Sürücü Doğrulayıcı Yöneticisini Kullanarak

    1. Sürücü Doğrulayıcı Yöneticisi'ni başlatın. Komut İstemi penceresine Doğrulayıcı yazın.
    2. Özel ayarlar oluştur'u (kod geliştiricileri için) seçin ve İleri'ye tıklayın.
    3. Tam liste'den tek tek ayarları seçin.
    4. Havuz izleme'yi seçin (denetleyin).

    Havuz İzleme özelliği standart ayarlara da dahildir. Bu özelliği kullanmak için Sürücü Doğrulayıcı Yöneticisi'nde Standart Ayarlar Oluştur'a tıklayın.