Udostępnij przez


Weryfikator sterowników

Driver Weryfikator to narzędzie do testowania systemu Windows, które ułatwia identyfikowanie problemów ze sterownikami, zanim spowodują awarie systemu lub uszkodzenie. Monitorując sterowniki trybu jądra i sterowniki graficzne w czasie rzeczywistym, Weryfikator sterowników wykrywa nielegalne wywołania funkcji i problematyczne akcje, które mogą zdestabilizować system.

Niezależnie od tego, czy tworzysz nowe sterowniki, czy rozwiązujesz problemy z istniejącymi, weryfikator sterowników zapewnia wczesne funkcje wykrywania i debugowania potrzebne do tworzenia niezawodnych, wysokiej jakości sterowników. W tym kompleksowym przewodniku opisano wszystko, od podstawowej konfiguracji po zaawansowane techniki debugowania.

  • Dowiedz się, kiedy i dlaczego używać weryfikatora sterowników
  • Konfigurowanie weryfikatora sterowników dla środowiska testowego
  • Konfigurowanie opcji weryfikacji dla określonych potrzeb
  • Debugowanie naruszeń i interpretowanie wyników
  • Stosowanie najlepszych rozwiązań dotyczących przepływów pracy testowania sterowników

Ważne

  • Uruchomienie weryfikatora sterowników może spowodować awarię komputera.
  • Uruchom tylko weryfikator sterowników na komputerach używanych do testowania i debugowania.
  • Aby użyć weryfikatora sterowników, musisz należeć do grupy Administratorzy na komputerze.

Gdzie mogę uzyskać weryfikatora sterowników?

Nie musisz pobierać weryfikatora sterowników, ponieważ większość wersji systemu Windows zawiera ją w %WinDir%\system32\ as Verifier.exe. (Weryfikator sterowników nie jest dołączony do systemu Windows 10 S, dlatego zalecamy testowanie zachowania sterowników w systemie Windows 10). Weryfikator sterowników nie jest dystrybuowany oddzielnie jako pakiet pobierania.

Aby uzyskać informacje o zmianach w weryfikatorze sterowników dla systemu Windows 10 i poprzednich wersjach systemu Windows, zobacz Driver Verifier: What's New (Weryfikator sterowników: co nowego).

Kiedy należy używać weryfikatora sterowników

Użyj weryfikatora sterowników w procesie programowania i testowania sterowników:

Wczesne opracowywanie

  • Znajdowanie problemów na wczesnym etapie cyklu programowania, gdy są one łatwiejsze i mniej kosztowne do rozwiązania
  • Zapobiegaj kosztownym opóźnieniom, wykrywając problemy, zanim dotrą do środowiska produkcyjnego.

Rozwiązywanie problemów

  • Szybkie debugowanie błędów testów i awarii komputera
  • Identyfikowanie głównych przyczyn niestabilności systemu związanego z sterownikiem

Testowanie i wdrażanie

Aby uzyskać kompleksowe wskazówki dotyczące testowania sterowników, zobacz Testowanie sterownika.

Ważne

Program zgodności sprzętu systemu Windows wymaga języka CodeQL dla testów logo narzędzia statycznego (STL) w systemach operacyjnych klienta i serwera. Nadal utrzymujemy wsparcie dla SDV i CA w starszych produktach. Partnerzy są zdecydowanie zachęcani do przejrzenia wymagań codeQL dotyczących testu logo narzędzia statycznego. Aby uzyskać więcej informacji na temat korzystania z CodeQL, zobacz CodeQL i Static Tools Logo Test.

Jak uruchomić weryfikatora sterowników

Uruchom weryfikator sterowników tylko na komputerach testowych lub na komputerach, które testujesz i debugujesz. Aby uzyskać największą korzyść z narzędzia Driver Verifier, użyj debugera jądra, aby nawiązać połączenie z komputerem testowym. Aby uzyskać więcej informacji na temat narzędzi do debugowania, zobacz Debugowanie narzędzi dla systemu Windows (WinDbg, KD, CDB, NTSD).

  1. Uruchom okno wiersza polecenia, wybierając pozycję Uruchom jako administrator i wpisz verifier, aby otworzyć Menedżera Weryfikacji Sterowników.

  2. Wybierz pozycję Utwórz ustawienia standardowe (zadanie domyślne), a następnie wybierz pozycję Dalej.

    Możesz również wybrać pozycję Utwórz ustawienia niestandardowe , aby wybrać spośród wstępnie zdefiniowanych ustawień lub wybrać poszczególne opcje. Aby uzyskać więcej informacji, zobacz Opcje i klasy reguł weryfikatora sterowników oraz Wybieranie opcji weryfikatora sterowników.

  3. W obszarze Wybierz sterowniki do zweryfikowania wybierz jeden z schematów wyboru opisanych w poniższej tabeli:

    Opcja Zalecane użycie
    Automatycznie wybierz niepodpisane sterowniki Przydatne do testowania na komputerach z uruchomionymi wersjami systemu Windows, które nie wymagają podpisanych sterowników.
    Automatyczne wybieranie sterowników utworzonych dla starszych wersji systemu Windows Przydatne do testowania zgodności sterowników z nowszymi wersjami systemu Windows.
    Automatycznie wybieraj wszystkie sterowniki zainstalowane na tym komputerze Zapewnia maksymalne pokrycie w zakresie liczby sterowników testowanych w systemie. Ta opcja jest przydatna w scenariuszach testowych, w których sterownik może wchodzić w interakcje z innymi urządzeniami lub sterownikami w systemie.

    Ta opcja może również wyczerpać zasoby dostępne dla Puli Specjalnej, a także śledzenie niektórych zasobów. Testowanie wszystkich sterowników może również niekorzystnie wpłynąć na wydajność systemu.
    Wybieranie nazw sterowników z listy W większości przypadków chcesz określić, które sterowniki chcesz przetestować.

    Wybranie wszystkich sterowników w stosie urządzenia umożliwia rozszerzonej weryfikacji wejścia/wyjścia śledzenie obiektów i sprawdzanie zgodności, ponieważ pakiet żądań I/O (IRP) jest przekazywany między poszczególnymi sterownikami w stosie, co pozwala na bardziej szczegółowy poziom w przypadku wykrycia błędu.

    Wybierz pojedynczy sterownik, jeśli uruchamiasz scenariusz testowy, który mierzy metryki wydajności systemu lub sterownika, lub jeśli chcesz przydzielić największą liczbę zasobów dostępnych do wykrywania uszkodzeń pamięci lub problemów ze śledzeniem zasobów (takich jak zakleszczenia lub elementy mutex). Opcje specjalnej puli i weryfikacji we/wy są bardziej skuteczne, gdy są używane dla jednego sterownika naraz.
  4. Jeśli wybierzesz pozycję Wybierz nazwy sterowników z listy, wybierz pozycję Dalej, a następnie wybierz jeden lub więcej określonych sterowników.

  5. Wybierz przycisk Zakończ, a następnie uruchom ponownie komputer.

Uwaga / Notatka

W przypadku korzystania z weryfikatora sterowników z systemem Windows w wersji 20150 do 25126, jeśli wybierzesz ntoskrnl , może zostać wyświetlony nieprawidłowy błąd stanu.
Aby uniknąć tego problemu, usuń zaznaczenie ntoskrnl lub uaktualnij do wersji systemu Windows po kompilacji 25126.

Uruchamianie weryfikatora sterowników w wierszu polecenia

Można również uruchomić Weryfikator sterowników w oknie wiersza polecenia bez uruchamiania Menedżera weryfikatora sterowników. Aby na przykład uruchomić Weryfikator sterowników ze standardowymi ustawieniami sterownika o nazwie myDriver.sys, użyj następującego polecenia:

verifier /standard /driver myDriver.sys

Aby uzyskać więcej informacji na temat opcji wiersza polecenia, zobacz Składnia poleceń Weryfikatora sterownika.

Jak kontrolować weryfikator sterowników

Wybierz preferowaną metodę kontrolowania weryfikatora sterowników:

  • Driver Verifier Manager (GUI) — łatwiejszy dla początkujących, interfejs wizualny
  • Wiersz polecenia — szybszy dla doświadczonych użytkowników, możliwość wykonywania skryptów

Uwaga / Notatka

Aby uruchomić Menedżera weryfikatora sterowników, zobacz Jak uruchomić weryfikatora sterowników poprzedniej sekcji.

Typowe zadania weryfikatora sterowników

Dla każdej z poniższych akcji można użyć Menedżera weryfikatora sterowników lub wprowadzić wiersz polecenia.

Aby zatrzymać lub zresetować weryfikatora sterowników

  1. W Menedżerze weryfikatora sterowników wybierz pozycję Usuń istniejące ustawienia, a następnie wybierz pozycję Zakończ.

    lub

    Wprowadź następujące polecenie w wierszu polecenia:

    verifier /reset
    
  2. Zrestartuj komputer.

Aby wyświetlić statystyki weryfikatora sterowników

W Menedżerze weryfikatora sterowników wybierz pozycję Wyświetl informacje o aktualnie zweryfikowanych sterownikach, a następnie wybierz pozycję Dalej. Kontynuowanie wybierania Dalej wyświetla dodatkowe informacje.

lub

Wprowadź następujące polecenie w wierszu polecenia:

verifier /query

Aby wyświetlić ustawienia weryfikatora sterowników

W Menedżerze weryfikatora sterowników wybierz pozycję Wyświetl istniejące ustawienia, a następnie wybierz pozycję Dalej.

lub

Wprowadź następujące polecenie w wierszu polecenia:

verifier /querysettings

Jak debugować naruszenia weryfikatora sterowników

Aby uzyskać największą korzyść z narzędzia Driver Verifier, użyj debugera jądra i połącz go z komputerem testowym. Aby zapoznać się z omówieniem narzędzi debugowania dla systemu Windows, zobacz Debugowanie narzędzi dla systemu Windows (WinDbg, KD, CDB, NTSD).

Jeśli weryfikator sterownika wykryje naruszenie, generuje sprawdzanie usterek w celu zatrzymania komputera. Ta akcja zapewnia najwięcej informacji na temat debugowania problemu. Po połączeniu debugera jądra z komputerem testowym z uruchomionym weryfikatorem sterowników i wykryciu naruszenia, system Windows przechodzi do debugera i wyświetla krótki opis błędu.

Wszystkie naruszenia wykryte przez weryfikatora sterowników powodują sprawdzanie błędów. Typowo jest to kontrola błędów systemowych kodu 0xC4. Aby uzyskać więcej informacji, zobacz Rozwiązywanie błędów sprawdzania 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION i Sprawdzanie błędów 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION.

Inne typowe kody sprawdzania błędów obejmują następujące kody:

Aby uzyskać więcej informacji, zobacz Obsługa sprawdzania błędów po włączeniu weryfikatora sterownika.

Po rozpoczęciu nowej sesji debugowania użyj polecenia rozszerzenia debugera , !analyze. W trybie jądra polecenie !analyze wyświetla informacje o najnowszym sprawdzaniu błędów. Aby wyświetlić dodatkowe informacje ułatwiające zidentyfikowanie sterownika błędów, dodaj opcję -v do polecenia w wierszu polecenia kd> :

kd> !analyze -v

Oprócz funkcji !analyze, można wprowadzić następujące rozszerzenia debuggera w wierszu polecenia kd>, aby wyświetlić informacje specyficzne dla weryfikatora sterowników:

  • !verifier wyprowadza przechwycone statystyki sterowników. Użyj !weryfikatora -? aby wyświetlić wszystkie dostępne opcje.

    kd> !verifier
    
  • !zakleszczenie wyświetla informacje związane z blokadami lub obiektami śledzonych przez funkcję wykrywania zakleszczenia weryfikatora sterownika. Użyj !deadlock -? by wyświetlić wszystkie dostępne opcje.

    kd> !deadlock
    
  • !iovirp [adres] wyświetla informacje związane z protokołem IRP śledzonym przez Weryfikator we/wy. Przykład:

    kd> !iovirp 947cef68
    
  • Wyszukaj regułę sprawdzania zgodności DDI , która została naruszona. (RuleID jest zawsze pierwszym argumentem sprawdzania błędów). Wszystkie identyfikatory reguł z sprawdzania zgodności DDI znajdują się w formularzu 0x200nn.

Dalsze kroki

Teraz, gdy znasz już podstawy weryfikatora sterowników, zapoznaj się z następującymi tematami pokrewnymi:

Uzyskaj pomoc