Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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ł
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.
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.
Po włączeniu tej opcji Weryfikator Sterowników sprawdza, czy sterownik zwolnił wszystkie alokacje pamięci podczas jego odinstalowywania. Ujawnia to przecieki pamięci.
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.
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.
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.
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.
(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.
(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.
(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.
(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).
(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.
(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 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.
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 |
|---|
Rozszerzona weryfikacja we/wy (w systemie Windows 7 lub nowszym ta opcja jest automatycznie aktywowana po wybraniu weryfikacji we/wy) |
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.