Udostępnij przez


Opcje i klasy reguł weryfikatora sterowników

W tym temacie opisano opcjonalne funkcje i klasy reguł w weryfikatorze sterowników. Zobacz Ustawienia standardowe , aby uzyskać listę opcji uwzględnionych podczas korzystania z ustawień standardowych.

Uwaga / Notatka

Niektóre automatyczne kontrole są zawsze wykonywane na sterowniku, który jest weryfikowany, niezależnie od wybranych opcji. Jeśli sterownik używa pamięci na niewłaściwym poziomie IRQL, nieprawidłowo wywołuje lub zwalnia blokady przyrostowe i alokacje pamięci, nieprawidłowo przełącza stosy lub zwalnia pulę pamięci bez uprzedniego usunięcia czasomierzy, Driver Verifier wykryje to zachowanie. Gdy sterownik zostanie zwolniony, weryfikator sterownika sprawdzi, czy prawidłowo zwolnił zasoby.

Włączanie klas reguł za pomocą /ruleclasses

Począwszy od systemu Windows 10 w wersji 17627 lub nowszej, można włączyć klasy reguł z następującą składnią:

/ruleclasses or /rc [<ruleclass_1> <ruleclass_2> ... <ruleclass_k>]

Należy pamiętać, że podczas włączania wielu klas (reprezentowanych przez dodatnią liczbę całkowitą dziesiętną poniżej) należy oddzielić każdą liczbę całkowitą znakiem spacji.

Opisy tych klas reguł można znaleźć poniżej.

Standardowe klasy reguł

Klasa reguł Identyfikator dziesiętny
Pula specjalna 1
Wymuszanie sprawdzania IRQL 2
Śledzenie zasobów puli 4
weryfikacja I/O 5
Wykrywanie zakleszczenia 6
Sprawdzanie DMA 8
Testy zabezpieczeń 9
Różne kontrole 12
Sprawdzanie zgodności DDI 18
Weryfikacja WDF 34

Dodatkowe klasy reguł

Te klasy reguł są przeznaczone do testowania określonego scenariusza. Klasy reguł oznaczone jako (*) wymagające weryfikacji I/O (5), które zostaną automatycznie włączone. Flagi oznaczone (**) obsługują wyłączanie poszczególnych reguł.

Klasa reguły Identyfikator dziesiętny
Symulacja zrandomizowanych zasobów o ograniczonej ilości 3
Wymuszanie oczekujących żądań we/wy (*) 10
Rejestrowanie IRP 11
Sprawdzanie niezmienników dla stosu MDL (*) 14
Weryfikacja niezmienników MDL dla sterownika (*) 15
Opóźnienie rozmycie struktury zasilania 16
Sprawdzanie interfejsu port/miniport 17
Systematyczne symulacje niskich zasobów 19
Sprawdzanie zgodności DDI (dodatkowe) 20
Opóźnienie synchronizacji jądra rozmyte 24
Weryfikacja przełącznika maszyny wirtualnej 25
Sprawdzanie integralności kodu 26
Testy izolacji sterowników (wymaga 36) 33
Dodatkowe sprawdzanie IRQL 35
Włącz DIF 36

Opcjonalne opisy funkcji i klas reguł

Pula specjalna

Po włączeniu tej opcji weryfikator sterowników przydziela większość żądań pamięci sterownika z specjalnej puli. Ta specjalna pula jest monitorowana pod kątem przepełnienia pamięci, niedoładowania pamięci i pamięci, do których uzyskuje się dostęp po jej zwolnieniu.

Wymuszanie sprawdzania IRQL

Po włączeniu tej opcji weryfikator sterowników wywiera skrajny nacisk pamięciowy na sterowniku, unieważniając stronicowany kod. Jeśli sterownik próbuje uzyskać dostęp do stronicowanej pamięci w niewłaściwym języku IRQL lub podczas przechowywania blokady spin, weryfikator sterownika wykryje to zachowanie.

Symulacja niskich zasobów (nazywana symulacją losowych niskich zasobów w systemie Windows 8.1)

Po włączeniu tej opcji, Weryfikator Sterowników losowo powoduje niepowodzenie żądań alokacji puli oraz innych żądań dotyczących zasobów. Przez wstrzyknięcie tych błędów alokacji do systemu, weryfikator sterowników testuje zdolność sterownika do radzenia sobie z sytuacją niskiej dostępności zasobów.

Śledzenie puli

Po włączeniu tej opcji Weryfikator Sterowników sprawdza, czy sterownik zwolnił wszystkie alokacje pamięci podczas jego odinstalowywania. Ujawnia to przecieki pamięci.

Weryfikacja wejścia/wyjścia

Gdy ta opcja jest aktywna, weryfikator sterowników przydziela adresy IR sterownika ze specjalnej puli i monitoruje obsługę we/wy sterownika. Wykrywa to nielegalne lub niespójne stosowanie procedur we/wy.

Wykrywanie zakleszczenia

Gdy ta opcja jest aktywna, Weryfikator sterowników monitoruje użycie blokad spin, mutexes i szybkich mutexes sterownika. To wykrywa, czy kod sterownika może spowodować zakleszczenie się w pewnym momencie.

Rozszerzona weryfikacja we/wy

Gdy ta opcja jest aktywna, Weryfikator sterowników monitoruje wywołania kilku procedur menedżera we/wy i wykonuje testy obciążeniowe irps PnP, power IRPs i WMI IRPs. W systemie Windows 7 i nowszych wersjach wszystkie funkcje rozszerzonej weryfikacji we/wy są uwzględnione w ramach weryfikacji we/wy i nie są już dostępne ani konieczne do wyboru tej opcji w Menedżerze weryfikatora sterowników lub za pomocą wiersza polecenia.

Weryfikacja DMA

Gdy ta opcja jest aktywna, weryfikator sterowników monitoruje użycie procedur DMA sterownika. To wykrywa nieprawidłowe użycie buforów DMA, adapterów i rejestrów map.

Testy zabezpieczeń

(Windows Vista i nowsze) Jeśli ta opcja jest aktywna, Weryfikator sterowników wyszukuje typowe błędy, które mogą powodować luki w zabezpieczeniach, takie jak odwołanie do adresów trybu użytkownika przez rutyny trybu jądra.

Różne kontrole

(Windows Vista i nowsze) Jeśli ta opcja jest aktywna, weryfikator sterowników szuka typowych przyczyn awarii sterowników, takich jak niewłaściwa obsługa zwolnionej pamięci.

Wymuszanie oczekujących żądań wejścia/wyjścia

(Windows Vista i nowsze) Gdy ta opcja jest aktywna, Weryfikator sterowników sprawdza odpowiedź sterownika na STATUS_PENDING zwracane wartości, zwracając STATUS_PENDING dla losowych wywołań do usługi IoCallDriver.

Rejestrowanie IRP

(Windows Server 2003 i nowsze) Gdy ta opcja jest aktywna, weryfikator sterowników monitoruje użycie IRP przez sterownik i tworzy dziennik użycia IRP.

Weryfikacja storportu

(Windows Vista i nowsze) Jeśli ta opcja jest aktywna, weryfikator sterowników Storport monitoruje sterownik miniportu Storport w celu nieprawidłowego korzystania z wyeksportowanych procedur Storport, nadmiernych opóźnień i niewłaściwej obsługi żądań Storport.

Fuzzing opóźnień Frameworku zasilania

(Począwszy od systemu Windows 8) Gdy ta opcja jest aktywna, weryfikator sterowników losuje harmonogramy wątków, aby pomóc opróżnić błędy współbieżności w sterownikach korzystających ze struktury zarządzania energią (PoFx). Ta opcja nie jest zalecana w przypadku sterowników, które nie korzystają bezpośrednio z platformy zarządzania energią (PoFx).

Sprawdzanie zgodności DDI

(Począwszy od systemu Windows 8) Jeśli ta opcja jest aktywna, Weryfikator sterownika stosuje zestaw reguł interfejsu sterownika urządzenia (DDI), które sprawdzają poprawną interakcję między sterownikiem a interfejsem jądra systemu operacyjnego.

Niezmienne sprawdzanie języka MDL dla stosu

(Począwszy od systemu Windows 8) opcja Niezmienne sprawdzanie MDL dla stosu monitoruje sposób, w jaki sterownik obsługuje niezmienne bufory MDL w stosie sterownika. Weryfikator sterowników może wykryć niedozwolone modyfikacje niezmiennych buforów MDL. Aby użyć tej opcji, weryfikacja we/wy musi być włączona na co najmniej jednym sterowniku.

Niezmienne sprawdzanie języka MDL dla sterownika

(Począwszy od systemu Windows 8) opcja Niezmiennego sprawdzania MDL dla sterownika monitoruje, w jaki sposób sterownik obsługuje niezmienne bufory MDL na zasadzie indywidualnego sterownika. Ta opcja wykrywa niedozwolone modyfikacje niezmiennych buforów MDL. Aby użyć tej opcji, należy włączyć weryfikację we/wy na co najmniej jednym sterowniku.

Wstrzykiwanie błędów opartych na stosie

(Dostępne tylko w systemach Windows 8 i WDK 8) Opcja Iniekcja awarii opartych na stosie powoduje awarie zasobów w sterownikach trybu jądra. Ta opcja używa specjalnego sterownika, KmAutoFail.sys, w połączeniu z narzędziem Driver Verifier, aby testować ścieżki obsługi błędów sterownika.

Systematyczne symulacje niskich zasobów

(Począwszy od systemu Windows 8.1) Opcja systematycznej symulacji niskich zasobów wprowadza błędy zasobów w sterownikach trybu jądra.

Weryfikacja NDIS/WIFI

(Począwszy od systemu Windows 8.1) Jeśli ta opcja jest aktywna, Weryfikator sterownika stosuje zestaw zasad NDIS i bezprzewodowej sieci LAN (WIFI), które sprawdzają poprawną interakcję między sterownikiem miniport NDIS a jądrem systemu operacyjnego.

Fuzzing opóźnienia synchronizacji jądra

(Począwszy od systemu Windows 8.1) Ta opcja losuje harmonogramy wątków, aby ułatwić wykrywanie błędów współbieżności w sterownikach.

Weryfikacja przełącznika maszyny wirtualnej

(Począwszy od systemu Windows 8.1) Ta opcja monitoruje sterowniki filtrów (rozszerzalne rozszerzenia przełącznika), które działają wewnątrz przełącznika rozszerzalnegoHyper-V.

Sprawdzanie interfejsu Port/Miniport

Sprawdzanie interfejsu port/miniport umożliwia weryfikatorowi sterowników inspekcję interfejsu DDI między PortCls.sys a sterownikami miniportu audio oraz sterownikami ks.sys i sterownikami miniportu AVStream. Zobacz Reguły dotyczące sterowników AVStream i Reguły dotyczące sterowników audio.

Sprawdzanie integralności kodu

W przypadku korzystania z zabezpieczeń opartych na wirtualizacji w celu odizolowania integralności kodu jedynym sposobem, w jaki pamięć jądra może stać się wykonywalna, jest weryfikacja integralności kodu. Oznacza to, że strony pamięci jądra nigdy nie mogą być zapisywalne i wykonywalne (W+X) i nie można bezpośrednio modyfikować kodu wykonywalnego. Sprawdzanie integralności kodu zapewnia zgodność tych reguł integralności kodu i wykrywa naruszenia.

Weryfikacja WDF

Weryfikacja WDF sprawdza, czy sterownik trybu jądra prawidłowo spełnia wymagania struktury sterownika Kernel-Mode (KMDF).

Dodatkowe sprawdzanie IRQL

Dodatkowe sprawdzanie IRQL rozszerza reguły sprawdzania zgodności DDI dla PASSIVE_LEVEL. Składa się z dwóch reguł:

  • Reguła IrqlIoRtlZwPassive określa, że sterownik wywołuje DDIs wymienione w regule tylko wtedy, gdy jest wykonywany na poziomie IRQL = PASSIVE_LEVEL.
  • Reguła IrqlNtifsApcPassive określa, że sterownik wywołuje DDI wymienione w regule tylko wtedy, gdy jest uruchamiany przy IRQL = PASSIVE_LEVEL lub IRQL <= APC_LEVEL.

Kontrole izolacji sterowników

Testy izolacji sterowników mają kluczowe znaczenie dla sprawdzania wymagań izolacji pakietów sterowników środowiska uruchomieniowego systemu Windows Aby uzyskać więcej informacji, zobacz Wprowadzenie do opracowywania sterowników systemu Windows. Kontrole monitorują odczyty i zapisy rejestru, które nie są dozwolone dla izolowanych pakietów sterowników.

Ustawienia standardowe

Opcje uwzględnione w ustawieniach standardowych

Pula specjalna

Wymuszanie sprawdzania IRQL

Śledzenie puli

Weryfikacja wejścia/wyjścia

Wykrywanie zakleszczenia

Rozszerzona weryfikacja we/wy (w systemie Windows 7 lub nowszym ta opcja jest automatycznie aktywowana po wybraniu weryfikacji we/wy)

Weryfikacja DMA

Testy zabezpieczeń

Różne kontrole (System Windows Vista i nowsze)

Sprawdzanie zgodności DDI (począwszy od systemu Windows 8)

Opcje weryfikatora sterowników wymagające weryfikacji we/wy

Istnieją cztery opcje, które wymagają uprzedniego włączenia weryfikacji Wejścia/Wyjścia. Jeśli weryfikacja we/wy nie jest włączona, te opcje nie są włączone.