Udostępnij przez


Systematyczne symulacje niskich zasobów

Opcja systematycznej symulacji niskich zasobów wprowadza błędy zasobów w sterownikach trybu jądra. Ta opcja bada mechanizmy obsługi błędów sterownika. Testowanie tych ścieżek było historycznie bardzo trudne. Opcja systematycznej symulacji niskich zasobów wprowadza awarie zasobów w przewidywalny sposób, co umożliwia powtarzalność wykrywanych problemów. Ponieważ ścieżki błędów są łatwe do odtworzenia, ułatwia również weryfikowanie poprawek tych problemów.

Aby ułatwić określenie głównej przyczyny błędu, podano rozszerzenie debugera, które może określić dokładnie, które błędy zostały wprowadzone i w jakiej kolejności.

Ostrożność Ta opcja nie jest przeznaczona do użycia podczas weryfikowania wszystkich (lub dużej kolekcji) sterowników na komputerze. Ta opcja powinna być używana tylko w przypadku przeprowadzania ukierunkowanego testowania poszczególnych sterowników lub dołączonych sterowników filtrów. Użycie tej opcji na dużej liczbie sterowników w tym samym czasie może spowodować nieprzewidywalne wyniki i może wymusić awarie składników niepowiązanych z testowanych sterowników.

Uwaga W przypadku systemu Windows 8.1 funkcja Stack Based Failure Injection, która była dostępna w WDK 8, została zintegrowana z Driver Verifier. Na komputerach z systemem Windows 8.1 użyj opcji Systematyczna symulacja niskich zasobów.

Gdy opcja Systematyczna symulacja niskich zasobów jest włączona dla określonego sterownika, przechwytuje niektóre wywołania z tego sterownika do jądra i Ndis.sys. Systematyczna symulacja niskich zasobów analizuje stos wywołań — w szczególności w części stosu wywołań pochodzącej ze sterownika, dla którego jest włączona. Jeśli jest to pierwszy raz, kiedy kiedykolwiek widział ten stos, wywołanie zakończy się niepowodzeniem zgodnie z semantyką tego wywołania. W przeciwnym razie, jeśli zobaczyło to wywołanie wcześniej, przepuści je bez zmian. Systematyczne symulacje niskich zasobów zawierają logikę, aby poradzić sobie z faktem, że sterownik może być ładowany i zwalniany wiele razy. Rozpozna, że stos wywołań jest taki sam, nawet jeśli sterownik zostanie ponownie załadowany do innej lokalizacji pamięci.

Aktywowanie tej opcji

Funkcję symulacji systematycznie niskich zasobów można aktywować dla jednego lub więcej sterowników za pomocą Menedżera Weryfikatora Sterowników lub wiersza polecenia Verifier.exe. Aby uzyskać szczegółowe informacje, zobacz Wybieranie opcji weryfikatora sterowników. Należy ponownie uruchomić komputer, aby aktywować lub dezaktywować opcję symulacji niskich zasobów systematycznych.

  • W wierszu polecenia

    Windows 11

    W wierszu polecenia systematyczna symulacja niskich zasobów jest reprezentowana przez verifier /rc 19 36 lub verifier /dif 19, z których oba obejmują wymagany tryb DIF.

    Funkcja będzie aktywna po następnym rozruchu lub natychmiast, jeśli /now zostanie dodana do ciągu polecenia.

    Windows 10 i starsze

    W wierszu polecenia systematyczna symulacja niskich zasobów jest reprezentowana przez verifier /flags 0x040000 (Bit 18). Do systematycznej symulacji niskich zasobów użyj wartości flagi 0x040000 lub dodaj 0x040000 do wartości flagi. Przykład:

    verifier /flags 0x040000 /driver MyDriver.sys
    

    Funkcja będzie aktywna po następnym rozruchu.

    Ogólne

    Po włączeniu opcji symulacji Systematyczne niskie zasoby można użyć opcji wiersza polecenia /faultssystematicOPTION , aby dokładniej kontrolować symulację Systematyczne niskie zasoby.

    OPCJA Opis

    włączczasrozruchu

    Włącza iniekcje błędów podczas ponownych uruchomień komputera.

    wyłącz boot time

    Wyłącza iniekcje błędów podczas ponownego uruchamiania komputera (jest to ustawienie domyślne).

    rejestrowanieczasuuruchomienia

    Włącza iniekcje błędów w trybie co by było gdyby między restartami komputera.

    resetujczasrozruchu

    Wyłącza iniekcje błędów podczas restartów komputera i czyści listę wykluczeń stosu.

    enableruntime

    Dynamicznie włącza iniekcje błędów.

    disableruntime

    Dynamicznie wyłącza iniekcje błędów.

    czas działania zapisu

    Dynamicznie umożliwia iniekcje błędów w trybie symulacyjnym.

    resetruntime

    Dynamicznie wyłącza iniekcje błędów i czyści wcześniej uszkodzoną listę stosów.

    statystyki zapytań

    Przedstawia bieżące statystyki iniekcji błędów.

    licznikInkrementacji

    Zwiększa licznik ukończonych testów używany do identyfikacji momentu, w którym wstrzyknięto błąd.

    getstackid COUNTER

    Pobiera wskazany identyfikator zaimplementowanego stosu.

    excludestack STACKID

    Wyklucza stos (stack) z iniekcji błędów.

  • Korzystanie z Menedżera weryfikatora sterowników

    1. Uruchom Menedżera weryfikatora sterowników. Wpisz Weryfikator w oknie wiersza polecenia.
    2. Wybierz pozycję Utwórz ustawienia niestandardowe (dla deweloperów kodu), a następnie kliknij przycisk Dalej.
    3. Wybierz poszczególne ustawienia z pełnej listy.
    4. Wybierz (sprawdź) Systematyczne symulacje niskich zasobów.
    5. Zrestartuj komputer.

Debugowanie usterek spowodowanych przez symulację systematycznego niskiego stanu zasobów

Większość problemów znalezionych w przypadku systematycznej symulacji niskich zasobów powoduje sprawdzenie błędów. Aby ułatwić określenie przyczyny tych błędów kodu, narzędzia debugowania dla systemu Windows udostępniają rozszerzenie debugera (kdexts.dll) i niezbędne symbole.

Aby uruchomić rozszerzenie debugera

  • W wierszu polecenia debugera wpisz następujące polecenie:

    !verifier 0x800
    

Spowoduje to przekazanie informacji do debuggera pokazującego stosy wywołań z ostatnich wstrzykniętych błędów.