Driver Verifier aracı, Windows 2000'den bu yana her Windows sürümüne dahil edilen ve sistem bozulmasına, arızalara veya diğer öngörülemeyen davranışlara neden olan birçok sürücü sorununu tespit etmek ve gidermek için kullanılan bir araçtır. Bu konuda, sistemdeki bir sürücüyü tespit etmek ve sorunlarını gidermek için Sürücü Doğrulayıcı'nın nasıl kullanılacağını anlatmaya çalışacağım.
Başlamadan önce; Verifier kullanımı öncesi sistem yedeği almanız, Geri yükleme noktası oluşturmanız elzem bir konudur. Zira konunun ilerisinde kısa olarak değindiğim boot sırasında sürekli mavi ekran stuck durumu yaşamanız düşük de olsa olasıdır. Bunun sonucunda sistemin düşeceği "Başlangıç Onarım" ekranından sistem yedeğiniz ile kurtulabilirsiniz.
Verifier aracını nasıl çalıştırabilirim?
Aracı Windows üzerinden çalıştırmak için 3 farklı alternatif yol bulunuyor:
Aracı çalıştırdıktan sonra karşınıza gelen ekrandan "Create custom settings (for code developers)" adlı seçeneği seçin. Bu, sürücüleri doğrulamak için önerilen testleri seçmemize olanak sağlayacak.
Windows 11 için, aşağıdaki seçenekleri aktifleştirmeniz gerekiyor. 2 seçeneğin üstünü çizdim (Daha sonra değineceğim.)
Ayarları yaptıktan sonra, artık doğrulamak istediğiniz sürücüleri seçmeye hazır hale geleceksiniz. Bunu yapmak için, lütfen "Select driver names from a list" başlıklı seçeneği seçin ve ardından tüm sürücüleri Provider sütununa göre sıralayın.
"Microsoft" veya "<unknwon>" başlığı altında Provider'a sahip olmayan tüm kutucukları işaretleyin.
Microsoft sürücülerini etkinleştirmek için özel sebeplerinizin olması lazım, aksi takdirde bunu normal yollarla da denesiniz pek bir işe yaramayacaktır. İlgili makale > S!
Ayrıca, dump_ veya hiber_ ön ekli sürücülerin de doğrulamasını etkinleştirmemenizi tavsiye ederim çünkü bu sürücüler makalede belirtildiği gibi .dmp ve .hiberfil.sys dosyalarını oluşturmayı yönetmekten sorumludurlar > <unknown>
İstediğiniz sürücüleri seçtikten sonra Finish/Son'u seçin ve ardından Verifier'i başlatmak için bilgisayarı yeniden başlatın.
Verifier aracını nasıl kapatabilirim?
Windows'u normal bir şekilde başlatabiliyorsanız Geliştirilmiş Komut Sistemini açın ve ardından aşağıdaki komutu girin:
Değişikliklerin etkili olması için bilgisayarı yeniden başlatmanız gerekecektir.
Verifier sonrası sürekli olarak sistemin boot işlemi sırasında çökmesi gibi durumlarla da karşılaşabilirsiniz. Bunun nedeni genellikle herhangi bir boot sürücüsünün kendisine karşı çalıştırılan Verifier testlerinden 1 tanesi veya daha fazlasında başarısız olmasıdır. Bu nadir bir durumdur ve bunu yaşamanız çok nadir bir olaydır. Böyle bir durumda kalırsanız Verifier'i Outside Windows üzerinden disable etmeniz gerekecektir.
Verifier aracının mevcut durumunu nasıl kontrol edebilirim?
Verifier'in çalışıp çalışmadığını kontrol etmek için Geliştirilmiş Komut Sistemini açın ve ardından aşağıdaki komutu girin:
Verifier başarıyla başlatıldıysa hangi seçeneklerin etkinleştirildiğini gösteren ayarlar listesini görmeniz de gerekiyor. Aksi takdirde şu anda hiçbir sürücünün doğrulanmadığını belirten bir mesaj alabilirsiniz. Öte yandan, hangi ayarların seçildiğini görmek istiyorsanız aşağıdaki komutu kullanın:
Daha önceden değineceğim dediğim 2 seçenek hakkında;
İlk olarak "Randomised Low Resources Simulation" seçeneğinin üstünü çizme sebebim kendisinin çok fazla False - Positive sonuçlara neden olmasıdır ve buna ek olarak çoğu zaman hiç de gerekli olmamasıdır.
F/P sonuçlara neden olduğu ve sistemi genel olarak tepkisiz hale getirebileceği ihtimali de olduğundan "Randomised Low Resources Simulation "seçeneğini etkinleştirmenize hiç gerek yok. Yani extra olarak çok çok özel bir sürücüyü test etmediğiniz sürece Microsoft tarafından bile önerilmiyor.
Bir diğeri olarak "I/O Verification" seçeneğinin üstünü çizme sebebim çökmeleri giderirken genellikle karşılaşmadığımız belirli bir dizi hatayı test etmek için tasarlanmış olmasından dolayı. Daha da önemlisi, bu seçenekten en yüksek seviyede verim almak için tek seferde yalnızca bir sürücüde etkinleştirilmesi gerekiyor.
Bununla beraber diğer 2 seçenek de "I/O Verification" seçeneğinin etkinleştirilmesine bağlıdır. IRP Logging(') yalnızca 0x44 Bug Check'ler için yararlı olan ek bir günlük oluşturur. Bunların yanında da 3.bir seçenek olan "Force Pending I/O Requests" seçeneği, test ettiğiniz sürücüyle ilişkili kaynak koduna sahip değilseniz etkinleştirilmemesi gereken diğer/başka bir seçenektir.
Verifier'e ait Hata Kontrolleri:
Başlamadan önce; Verifier kullanımı öncesi sistem yedeği almanız, Geri yükleme noktası oluşturmanız elzem bir konudur. Zira konunun ilerisinde kısa olarak değindiğim boot sırasında sürekli mavi ekran stuck durumu yaşamanız düşük de olsa olasıdır. Bunun sonucunda sistemin düşeceği "Başlangıç Onarım" ekranından sistem yedeğiniz ile kurtulabilirsiniz.
Verifier aracını nasıl çalıştırabilirim?
Aracı Windows üzerinden çalıştırmak için 3 farklı alternatif yol bulunuyor:
- Çalıştır menüsü üzerinden (Win+R) > Verifier.exe/search seçeneği ile.
- Windows arama butonu üzerinden > Verifier.exe+sağ tık yönetici çalıştır seçeneği ile.
- Geliştirilmiş Komut Sistemi üzerinden (CMD) > Verifier.exe +Enter seçeneği ile.
Aracı çalıştırdıktan sonra karşınıza gelen ekrandan "Create custom settings (for code developers)" adlı seçeneği seçin. Bu, sürücüleri doğrulamak için önerilen testleri seçmemize olanak sağlayacak.
Windows 11 için, aşağıdaki seçenekleri aktifleştirmeniz gerekiyor. 2 seçeneğin üstünü çizdim (Daha sonra değineceğim.)
- Special Pool
- Force IRQL Checking
- Pool Tracking
- Deadlock Detection
- Security Checks (Windows 7 ve sonrası için geçerlidir)
- Miscellaneous Checks
- DDI Compliance Checking (Windows 8 ve sonrası için geçerlidir)
- DDI Compliance Checking (Additional) (Windows 8 ve sonrası için geçerlidir)
- Power Framework Delay Fuzzing (Windows 10 ve altı için geçerlidir.)
- Kernel Synchronisation Delay Fuzzing
Ayarları yaptıktan sonra, artık doğrulamak istediğiniz sürücüleri seçmeye hazır hale geleceksiniz. Bunu yapmak için, lütfen "Select driver names from a list" başlıklı seçeneği seçin ve ardından tüm sürücüleri Provider sütununa göre sıralayın.
"Microsoft" veya "<unknwon>" başlığı altında Provider'a sahip olmayan tüm kutucukları işaretleyin.
Microsoft sürücülerini etkinleştirmek için özel sebeplerinizin olması lazım, aksi takdirde bunu normal yollarla da denesiniz pek bir işe yaramayacaktır. İlgili makale > S!
The problem is that Verifier is validating calls into the operating system. For the above drivers, your driver isn’t calling into the operating system, at least not most of the time. The library is. For example, if you’re KMDF driver calls WdfDeviceCreate, it’s the Framework that calls ExAllocatePool to allocate your WDFDEVICE and your Device Context. The buffers allocated in this case won’t be subject to validation by Driver Verifier unless you have explicitly enabled Driver Verifier for the Framework. If you only enable Driver Verifier for your driver, the only pool validation that you get will be for calls that your driver makes directly to ExAllocatePool
![]()
Ayrıca, dump_ veya hiber_ ön ekli sürücülerin de doğrulamasını etkinleştirmemenizi tavsiye ederim çünkü bu sürücüler makalede belirtildiği gibi .dmp ve .hiberfil.sys dosyalarını oluşturmayı yönetmekten sorumludurlar > <unknown>
İstediğiniz sürücüleri seçtikten sonra Finish/Son'u seçin ve ardından Verifier'i başlatmak için bilgisayarı yeniden başlatın.
Verifier aracını nasıl kapatabilirim?
Windows'u normal bir şekilde başlatabiliyorsanız Geliştirilmiş Komut Sistemini açın ve ardından aşağıdaki komutu girin:
verifier /resetDeğişikliklerin etkili olması için bilgisayarı yeniden başlatmanız gerekecektir.
Verifier sonrası sürekli olarak sistemin boot işlemi sırasında çökmesi gibi durumlarla da karşılaşabilirsiniz. Bunun nedeni genellikle herhangi bir boot sürücüsünün kendisine karşı çalıştırılan Verifier testlerinden 1 tanesi veya daha fazlasında başarısız olmasıdır. Bu nadir bir durumdur ve bunu yaşamanız çok nadir bir olaydır. Böyle bir durumda kalırsanız Verifier'i Outside Windows üzerinden disable etmeniz gerekecektir.
Verifier aracının mevcut durumunu nasıl kontrol edebilirim?
Verifier'in çalışıp çalışmadığını kontrol etmek için Geliştirilmiş Komut Sistemini açın ve ardından aşağıdaki komutu girin:
verifier /queryVerifier başarıyla başlatıldıysa hangi seçeneklerin etkinleştirildiğini gösteren ayarlar listesini görmeniz de gerekiyor. Aksi takdirde şu anda hiçbir sürücünün doğrulanmadığını belirten bir mesaj alabilirsiniz. Öte yandan, hangi ayarların seçildiğini görmek istiyorsanız aşağıdaki komutu kullanın:
verifier /querysettingsDaha önceden değineceğim dediğim 2 seçenek hakkında;
İlk olarak "Randomised Low Resources Simulation" seçeneğinin üstünü çizme sebebim kendisinin çok fazla False - Positive sonuçlara neden olmasıdır ve buna ek olarak çoğu zaman hiç de gerekli olmamasıdır.
- Low Resources Simulation - Windows driversDriver Verifier fails random instances of the driver's memory allocations, as might occur if the driver was running on a computer with insufficient memory. This tests the driver's ability to respond properly to low memory and other low-resource conditions.
F/P sonuçlara neden olduğu ve sistemi genel olarak tepkisiz hale getirebileceği ihtimali de olduğundan "Randomised Low Resources Simulation "seçeneğini etkinleştirmenize hiç gerek yok. Yani extra olarak çok çok özel bir sürücüyü test etmediğiniz sürece Microsoft tarafından bile önerilmiyor.
- Systematic Low Resources Simulation - Windows driversCaution This option is not intended for use when you are verifying all (or a large collection of) drivers on a computer. This option should be used only when you are doing targeted testing of individual drivers or their attached filter drivers. Using this option on a large number of drivers at the same time could cause unpredictable results, and could force crashes in components unrelated to the driver(s) you are testing.
Bir diğeri olarak "I/O Verification" seçeneğinin üstünü çizme sebebim çökmeleri giderirken genellikle karşılaşmadığımız belirli bir dizi hatayı test etmek için tasarlanmış olmasından dolayı. Daha da önemlisi, bu seçenekten en yüksek seviyede verim almak için tek seferde yalnızca bir sürücüde etkinleştirilmesi gerekiyor.
- I/O Verification - Windows driversWhen Level 1 I/O Verification is enabled, all IRPs obtained through IoAllocateIrp are allocated from a special pool and their use is tracked.
[...]
Because the special IRP pool is of limited size, I/O Verification is most effective when it is only used on one driver at a time.
Bununla beraber diğer 2 seçenek de "I/O Verification" seçeneğinin etkinleştirilmesine bağlıdır. IRP Logging(') yalnızca 0x44 Bug Check'ler için yararlı olan ek bir günlük oluşturur. Bunların yanında da 3.bir seçenek olan "Force Pending I/O Requests" seçeneği, test ettiğiniz sürücüyle ilişkili kaynak koduna sahip değilseniz etkinleştirilmemesi gereken diğer/başka bir seçenektir.
- Force Pending I/O Requests - Windows driversCaution Do not use this option on a driver unless you have detailed knowledge of the operation of the driver and have verified that the driver is designed to handle STATUS_PENDING return values from all of its calls to IoCallDriver. Running this option on a driver that is not designed to handle STATUS_PENDING from all calls can result in crashes, memory corruptions, and unusual system behavior that can be difficult to debug or correct.
Verifier'e ait Hata Kontrolleri:
- Bug Check 0xC1: SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION
- Bug Check 0xC6: DRIVER_CAUGHT_MODIFYING_FREED_POOL
- Bug Check 0xC9: DRIVER_VERIFIER_IOMANAGER_VIOLATION
- Bug Check 0xD6: DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION
- Bug Check 0xE6: DRIVER_VERIFIER_DMA_VIOLATION
- Bug Check 0xC4 DRIVER_VERIFIER_DETECTED_VIOLATION - Windows drivers