Zaawansowane rozwiązywanie problemów z błędami zatrzymania lub niebieskiego ekranu

Wypróbuj naszego agenta wirtualnego — może pomóc w szybkim identyfikowaniu i rozwiązywaniu typowych problemów z rozruchem systemu Windows

Uwaga

Jeśli nie jesteś agentem pomocy technicznej lub specjalistą IT, więcej przydatnych informacji na temat komunikatów o błędzie zatrzymania ("niebieski ekran") znajdziesz w temacie Rozwiązywanie problemów z błędami niebieskiego ekranu.

Dotyczy: Obsługiwane wersje systemu Windows Server i klienta systemu Windows

Co powoduje błędy zatrzymania?

Gdy system Windows napotka warunek, który zagraża bezpiecznej operacji systemu, system zostanie zatrzymany. Przykłady obejmują awarię, która może naruszyć bezpieczeństwo lub doprowadzić do uszkodzenia systemu operacyjnego i/lub danych użytkownika. Gdy maszyna zostanie zatrzymana, aby uniemożliwić systemowi operacyjnemu przejście do przodu w tych warunkach, jest to nazywane sprawdzaniem błędów (lub sprawdzaniem usterek). Jest on również powszechnie określany jako awaria systemu, błąd jądra, niebieski ekran, niebieski ekran śmierci (BSOD) lub błąd zatrzymania. W wersjach zapoznawczych systemu Windows kolor ekranu może być zielony, co prowadzi do zielonego ekranu śmierci (GSOD).

Nie ma prostego wyjaśnienia przyczyny błędów zatrzymania. Może być zaangażowanych wiele różnych czynników. Nasza analiza głównych przyczyn awarii wskazuje, że:

  • 70% jest spowodowanych kodem sterownika innej firmy.
  • 10% jest spowodowanych problemami sprzętowymi.
  • 5% jest spowodowanych przez kod firmy Microsoft.
  • 15% ma nieznane przyczyny, ponieważ pamięć jest zbyt uszkodzona do analizy.

Uwaga

Główną przyczyną błędów zatrzymania rzadko jest proces w trybie użytkownika. Chociaż proces w trybie użytkownika (taki jak Notatnik lub Slack) może spowodować błąd zatrzymania, zwykle uwidacznia podstawowy problem w sterowniku, sprzęcie lub systemie operacyjnym.

Ogólne kroki rozwiązywania problemów

Aby rozwiązać problemy z komunikatami o błędach zatrzymania, wykonaj następujące ogólne kroki:

  1. Przejrzyj kod błędu zatrzymania, który znajduje się w dziennikach zdarzeń. Wyszukaj w trybie online konkretne kody błędów zatrzymania, aby sprawdzić, czy istnieją znane problemy, rozwiązania lub obejścia problemu.

  2. Upewnij się, że zainstalowano najnowsze aktualizacje systemu Windows, aktualizacje zbiorcze i aktualizacje zbiorcze. Aby zweryfikować stan aktualizacji, zapoznaj się z odpowiednią historią aktualizacji dla systemu. Przykład:

  3. Upewnij się, że system BIOS i oprogramowanie układowe są aktualne.

  4. Uruchom wszystkie odpowiednie testy sprzętu i pamięci.

  5. Uruchom Skaner bezpieczeństwa Microsoft lub inny program wykrywania wirusów, który obejmuje kontrole MBR pod kątem zakażeń.

  6. Upewnij się, że na dysku twardym jest wystarczająca ilość wolnego miejsca. Dokładne wymaganie jest różne, ale zalecamy 10–15% wolnego miejsca na dysku.

  7. Skontaktuj się z odpowiednim dostawcą sprzętu lub oprogramowania, aby zaktualizować sterowniki i aplikacje w następujących scenariuszach:

    • Komunikat o błędzie wskazuje, że przyczyną problemu jest określony sterownik.
    • Widzisz wskazanie usługi, która uruchamia się lub zatrzymuje przed wystąpieniem awarii. W tej sytuacji określ, czy zachowanie usługi jest spójne we wszystkich wystąpieniach awarii.
    • Wprowadzono jakiekolwiek zmiany dotyczące oprogramowania lub sprzętu.

    Uwaga

    Jeśli nie ma dostępnych aktualizacji od określonego producenta, zalecamy wyłączenie powiązanej usługi.

    Aby uzyskać więcej informacji, zobacz Jak wykonać czysty rozruch w systemie Windows.

    Sterownik można wyłączyć, wykonując kroki opisane w temacie Jak tymczasowo dezaktywować sterownik filtru trybu jądra w systemie Windows.

    Warto również rozważyć opcję wycofywania zmian lub powrotu do ostatniego znanego stanu roboczego. Aby uzyskać więcej informacji, zobacz Wycofywanie sterownika urządzenia do poprzedniej wersji.

Zbieranie zrzutów pamięci

Aby skonfigurować system dla plików zrzutu pamięci, wykonaj następujące kroki:

  1. Wybierz pole wyszukiwania Paska zadań, wpisz Zaawansowane ustawienia systemowe, a następnie naciśnij klawisz Enter.
  2. Na karcie Zaawansowane w polu Właściwości systemu wybierz przycisk Ustawienia wyświetlany w sekcji Uruchamianie i odzyskiwanie.
  3. W nowym oknie wybierz listę rozwijaną poniżej opcji Zapisz informacje debugowania.
  4. Wybierz pozycję Automatyczne zrzut pamięci.
  5. Wybierz przycisk OK.
  6. Uruchom ponownie komputer, aby ustawienie miało zastosowanie.
  7. Jeśli serwer jest zwirtualizowany, wyłącz automatyczne ponowne uruchamianie po utworzeniu pliku zrzutu pamięci. To wyłączenie umożliwia utworzenie migawki stanu serwera, a także w przypadku wystąpienia problemu.

Plik zrzutu pamięci jest zapisywany w następujących lokalizacjach:

Typ pliku zrzutu Lokalizacja
(brak) %SystemRoot%\MEMORY. DMP (nieaktywne lub wyszarzone)
Mały plik zrzutu pamięci (256 kb) %SystemRoot%\Minidump
Plik zrzutu pamięci jądra %SystemRoot%\MEMORY. DMP
Ukończ plik zrzutu pamięci %SystemRoot%\MEMORY. DMP
Plik automatycznego zrzutu pamięci %SystemRoot%\MEMORY. DMP
Aktywny plik zrzutu pamięci %SystemRoot%\MEMORY. DMP

Narzędzie Do sprawdzania plików zrzutu awaryjnego firmy Microsoft (DumpChk) umożliwia sprawdzenie, czy pliki zrzutu pamięci nie są uszkodzone lub nieprawidłowe. Aby uzyskać więcej informacji, zobacz następujące wideo:

Aby uzyskać więcej informacji na temat sposobu używaniaDumpchk.exe do sprawdzania plików zrzutu, zobacz następujące artykuły:

Ustawienia pliku strony

Aby uzyskać więcej informacji na temat ustawień pliku strony, zobacz następujące artykuły:

Analiza zrzutu pamięci

Znalezienie głównej przyczyny awarii może nie być łatwe. Problemy sprzętowe są szczególnie trudne do zdiagnozowania, ponieważ mogą powodować niekonsekwentne i nieprzewidywalne zachowanie, które może objawiać się różnymi objawami.

Po wystąpieniu błędu zatrzymania należy najpierw wyizolować problematyczne składniki, a następnie spróbować spowodować ponowne wyzwolenie błędu zatrzymania. Jeśli można zreplikować problem, zazwyczaj można określić przyczynę.

Do diagnozowania dzienników zrzutów można użyć narzędzi, takich jak Windows Software Development Kit (Windows SDK) (SDK) i symbole. W następnej sekcji omówiono sposób używania tego narzędzia.

Zaawansowane kroki rozwiązywania problemów

Uwaga

Zaawansowane rozwiązywanie problemów z zrzutami awaryjnymi może być bardzo trudne, jeśli nie masz doświadczenia z programowaniem i wewnętrznymi mechanizmami systemu Windows. Staraliśmy się w tym miejscu przedstawić krótki wgląd w niektóre z zastosowanych technik, w tym kilka przykładów. Jednak aby naprawdę skutecznie rozwiązywać problemy z zrzutem awaryjnym, należy poświęcić czas na zapoznanie się z zaawansowanymi technikami debugowania. W przypadku przeglądu wideo tryb jądra debugowania ulega awarii i zawiesza się. Zapoznaj się również z zaawansowanymi odwołaniami wymienionymi poniżej.

Zaawansowane odwołania do debugowania

Kroki debugowania

  1. Sprawdź, czy komputer jest skonfigurowany do generowania kompletnego pliku zrzutu pamięci w przypadku awarii. Aby uzyskać więcej informacji, zobacz Metoda 1: Zrzut pamięci.

  2. Znajdź plik memory.dmp w katalogu systemu Windows na komputerze, który ulega awarii, i skopiuj ten plik na inny komputer.

  3. Na drugim komputerze pobierz zestaw Windows 10 SDK.

  4. Uruchom instalację i wybierz pozycję Narzędzia debugowania dla systemu Windows. Narzędzie WinDbg jest zainstalowane.

  5. Przejdź do menu Plik i wybierz pozycję Ścieżka pliku symbolu , aby otworzyć narzędzie WinDbg i ustawić ścieżkę symbolu.

    1. Jeśli komputer jest połączony z Internetem, wprowadź publiczny serwer symboli firmy Microsoft: https://msdl.microsoft.com/download/symbols i wybierz przycisk OK. Ta metoda jest zalecana.
    2. Jeśli komputer nie jest połączony z Internetem, określ lokalną ścieżkę symboli.
  6. Wybierz pozycję Otwórz zrzut awaryjny, a następnie otwórz skopiowany plik memory.dmp .

    Zrzut ekranu przedstawiający przykładowe dane wyjściowe w usłudze WinDbg podczas otwierania pliku zrzutu awaryjnego.

  7. W obszarze Analiza sprawdzania usterek wybierz pozycję !analyze -v. Polecenie !analyze -v jest wprowadzane w wierszu polecenia w dolnej części strony.

  8. Zostanie wyświetlona szczegółowa analiza sprawdzania błędów.

    Zrzut ekranu przedstawiający szczegółowy przykład analizy sprawdzania błędów.

  9. Przewiń w dół do sekcji STACK_TEXT . Będą wiersze liczb z każdym wierszem, po którym następuje dwukropek i tekst. Ten tekst powinien zawierać informacje o tym, co jest przyczyną awarii biblioteki DLL. Jeśli ma to zastosowanie, jest również wyświetlany komunikat o tym, jaka usługa ulega awarii biblioteki DLL.

  10. Aby uzyskać więcej informacji na temat interpretowania danych wyjściowych STACK_TEXT, zobacz Using the !analyze Extension (Używanie rozszerzenia !analyze).

Istnieje wiele możliwych przyczyn sprawdzania błędów, a każdy przypadek jest unikatowy. W powyższym przykładzie ważne wiersze, które można zidentyfikować z STACK_TEXT, to 20, 21 i 22:

Uwaga

Dane hex są tutaj usuwane, a wiersze są numerowane w celu zapewnienia przejrzystości.

1  : nt!KeBugCheckEx
2  : nt!PspCatchCriticalBreak+0xff
3  : nt!PspTerminateAllThreads+0x1134cf
4  : nt!PspTerminateProcess+0xe0
5  : nt!NtTerminateProcess+0xa9
6  : nt!KiSystemServiceCopyEnd+0x13
7  : nt!KiServiceLinkage
8  : nt!KiDispatchException+0x1107fe
9  : nt!KiFastFailDispatch+0xe4
10 : nt!KiRaiseSecurityCheckFailure+0x3d3
11 : ntdll!RtlpHpFreeWithExceptionProtection$filt$0+0x44
12 : ntdll!_C_specific_handler+0x96
13 : ntdll!RtlpExecuteHandlerForException+0xd
14 : ntdll!RtlDispatchException+0x358
15 : ntdll!KiUserExceptionDispatch+0x2e
16 : ntdll!RtlpHpVsContextFree+0x11e
17 : ntdll!RtlpHpFreeHeap+0x48c
18 : ntdll!RtlpHpFreeWithExceptionProtection+0xda
19 : ntdll!RtlFreeHeap+0x24a
20 : FWPolicyIOMgr!FwBinariesFree+0xa7c2
21 : mpssvc!FwMoneisDiagEdpPolicyUpdate+0x1584f
22 : mpssvc!FwEdpMonUpdate+0x6c
23 : ntdll!RtlpWnfWalkUserSubscriptionList+0x29b
24 : ntdll!RtlpWnfProcessCurrentDescriptor+0x105
25 : ntdll!RtlpWnfNotificationThread+0x80
26 : ntdll!TppExecuteWaitCallback+0xe1
27 : ntdll!TppWorkerThread+0x8d0
28 : KERNEL32!BaseThreadInitThunk+0x14
29 : ntdll!RtlUserThreadStart+0x21

Ten problem jest spowodowany usługą mpssvc, która jest składnikiem Zapory systemu Windows. Problem został naprawiony przez tymczasowe wyłączenie zapory, a następnie zresetowanie zasad zapory.

Aby uzyskać więcej przykładów, zobacz Przykłady debugowania.

Zasoby wideo

Poniższe klipy wideo ilustrują różne techniki rozwiązywania problemów w celu analizowania plików zrzutu.

Zaawansowane rozwiązywanie problemów przy użyciu weryfikatora sterowników

Szacujemy, że około 75 procent wszystkich błędów zatrzymania jest spowodowanych przez wadliwe sterowniki. Narzędzie Driver Verifier udostępnia kilka metod ułatwiających rozwiązywanie problemów. Obejmują one uruchamianie sterowników w izolowanej puli pamięci (bez udostępniania pamięci innym składnikom), generowanie ekstremalnego obciążenia pamięci i weryfikowanie parametrów. Jeśli narzędzie napotka błędy podczas wykonywania kodu sterownika, proaktywnie tworzy wyjątek. Następnie może dokładniej zbadać tę część kodu.

Ostrzeżenie

Weryfikator sterowników zużywa dużo procesora i może znacznie spowolnić komputer. Mogą również wystąpić dodatkowe awarie. Weryfikator wyłącza błędy sterowników po wystąpieniu błędu zatrzymania i kontynuuje to do momentu pomyślnego ponownego uruchomienia systemu i uzyskania dostępu do pulpitu. Można również oczekiwać, że zostanie utworzonych kilka plików zrzutu.

Nie próbuj jednocześnie weryfikować wszystkich sterowników. Ta akcja może obniżyć wydajność i sprawić, że system będzie bezużyteczny. Ogranicza również skuteczność narzędzia.

Podczas korzystania z weryfikatora sterowników skorzystaj z następujących wskazówek:

  • Przetestuj wszelkie "podejrzane" sterowniki. Na przykład sterowniki, które zostały niedawno zaktualizowane lub które są znane jako problematyczne.
  • Jeśli nadal występują nieanalizowalne awarie, spróbuj włączyć weryfikację wszystkich sterowników innych firm i niepodpisanych.
  • Włącz weryfikację współbieżną w grupach sterowników 10–20.
  • Ponadto jeśli komputer nie może uruchomić się na pulpicie z powodu weryfikatora sterowników, możesz wyłączyć to narzędzie, uruchamiając je w trybie awaryjnym. To rozwiązanie jest spowodowane tym, że narzędzie nie może działać w trybie awaryjnym.

Aby uzyskać więcej informacji, zobacz Driver Verifier (Weryfikator sterowników).

Typowe błędy zatrzymania systemu Windows

Ta sekcja nie zawiera listy wszystkich kodów błędów, ale ponieważ wiele kodów błędów ma takie same potencjalne rozwiązania, najlepszym rozwiązaniem jest wykonanie poniższych kroków w celu rozwiązania problemu z błędem. Aby uzyskać pełną listę kodów błędów zatrzymania, zobacz Dokumentacja kodu sprawdzania błędów.

W poniższych sekcjach wymieniono ogólne procedury rozwiązywania problemów dotyczące typowych kodów błędów zatrzymania.

VIDEO_ENGINE_TIMEOUT_DETECTED lub VIDEO_TDR_TIMEOUT_DETECTED

Zatrzymaj 0x00000141 kodu błędu lub 0x00000117

Skontaktuj się z dostawcą wymienionego sterownika wyświetlania, aby uzyskać odpowiednią aktualizację dla tego sterownika.

DRIVER_IRQL_NOT_LESS_OR_EQUAL

Zatrzymaj kod błędu 0x0000000D1

Zastosuj najnowsze aktualizacje sterownika, stosując najnowsze aktualizacje zbiorcze dla systemu za pośrednictwem witryny internetowej wykazu aktualizacji firmy Microsoft. Zaktualizuj nieaktualny sterownik sieciowy. Zwirtualizowane systemy VMware często uruchamiają połączenie sieciowe "Intel(R) PRO/1000 MT" (e1g6032e.sys). Ten sterownik można pobrać z witryny internetowej Intel Download Drivers & Software. Skontaktuj się z dostawcą sprzętu, aby zaktualizować sterownik sieci w celu rozwiązania problemu. W przypadku systemów VMware użyj zintegrowanego sterownika sieci VMware zamiast e1g6032e.sys firmy Intel. Na przykład użyj typów VMware VMXNET, VMXNET2 lub VMXNET3.

PAGE_FAULT_IN_NONPAGED_AREA

Zatrzymaj kod błędu 0x000000050

Jeśli sterownik zostanie zidentyfikowany w komunikacie o błędzie zatrzymania, skontaktuj się z producentem w celu uzyskania aktualizacji. Jeśli żadne aktualizacje nie są dostępne, wyłącz sterownik i monitoruj system pod kątem stabilności. Uruchom polecenie chkdsk /f /r , aby wykryć i naprawić błędy dysku. Uruchom ponownie system przed rozpoczęciem skanowania dysku na partycji systemowej. Skontaktuj się z producentem w celu uzyskania wszelkich narzędzi diagnostycznych, które mogą być dostępne dla podsystemu dysku twardego. Spróbuj ponownie zainstalować dowolną aplikację lub usługę, która została niedawno zainstalowana lub zaktualizowana. Możliwe, że awaria została wyzwolona podczas uruchamiania aplikacji przez system i odczytywania rejestru pod kątem ustawień preferencji. Ponowne zainstalowanie aplikacji może naprawić uszkodzone klucze rejestru. Jeśli problem będzie się powtarzać i uruchomiono ostatnią kopię zapasową stanu systemu, spróbuj przywrócić gałąź rejestru z kopii zapasowej.

SYSTEM_SERVICE_EXCEPTION

Zatrzymaj kod błędu c000021a {Błąd systemu krytycznego} Proces systemu podsystemu Windows nieoczekiwanie zakończył się ze stanem 0xc0000005. System został zamknięty.

Narzędzie do sprawdzania plików systemowych służy do naprawiania brakujących lub uszkodzonych plików systemowych. Systemowa funkcja sprawdzania plików umożliwia użytkownikom skanowanie pod kątem uszkodzeń w plikach systemowych systemu Windows i przywracanie uszkodzonych plików. Aby uzyskać więcej informacji, zobacz Korzystanie z narzędzia systemowego sprawdzania plików.

NTFS_FILE_SYSTEM

Zatrzymaj kod błędu 0x000000024

Ten błąd zatrzymania jest często spowodowany uszkodzeniem systemu plików NTFS lub nieprawidłowymi blokami (sektorami) na dysku twardym. Uszkodzone sterowniki dysków twardych (SATA lub IDE) mogą również niekorzystnie wpłynąć na zdolność systemu do odczytu i zapisu na dysku. Uruchom dowolną diagnostykę sprzętu dostarczoną przez producenta podsystemu magazynu. Użyj narzędzia do skanowania dysku, aby sprawdzić, czy nie występują błędy systemu plików. Aby to zrobić, kliknij prawym przyciskiem myszy dysk, który chcesz zeskanować, wybierz pozycję Właściwości, wybierz pozycję Narzędzia, a następnie wybierz przycisk Sprawdź teraz. Zaktualizuj sterownik systemu plików NTFS (Ntfs.sys). Zastosuj najnowsze aktualizacje zbiorcze dla bieżącego systemu operacyjnego, w przypadku którego występuje problem.

KMODE_EXCEPTION_NOT_HANDLED

Zatrzymaj kod błędu 0x0000001E

Jeśli sterownik zostanie zidentyfikowany w komunikacie o błędzie zatrzymania, wyłącz lub usuń ten sterownik. Wyłącz lub usuń wszystkie sterowniki lub usługi, które zostały ostatnio dodane.

Jeśli błąd występuje podczas sekwencji uruchamiania, a partycja systemowa jest sformatowana przy użyciu systemu plików NTFS, możesz użyć trybu awaryjnego, aby wyłączyć sterownik w Menedżer urządzeń. Aby wyłączyć sterownik, wykonaj następujące kroki:

  1. Przejdź do pozycji Ustawienia>Zaktualizuj & odzyskiwanie zabezpieczeń>.
  2. W obszarze Uruchamianie zaawansowane wybierz pozycję Uruchom ponownie teraz.
  3. Po ponownym uruchomieniu komputera na ekranie Wybierz opcję wybierz pozycję Rozwiąż problemy z>opcjami zaawansowanymi> Ustawienia >uruchamianiaUruchom ponownie.
  4. Po ponownym uruchomieniu komputera zostanie wyświetlona lista opcji. Naciśnij klawisz 4 lub F4, aby uruchomić komputer w trybie awaryjnym. Jeśli zamierzasz korzystać z Internetu w trybie awaryjnym, naciśnij klawisz 5 lub F5, aby wybrać opcję Tryb awaryjny z siecią .

DPC_WATCHDOG_VIOLATION

Zatrzymaj kod błędu 0x00000133

Ten kod błędu zatrzymania jest spowodowany przez uszkodzony sterownik, który nie kończy pracy w wyznaczonym przedziale czasu w określonych warunkach. Aby wyeliminować ten błąd, zbierz plik zrzutu pamięci z systemu, a następnie użyj debugera systemu Windows, aby znaleźć uszkodzony sterownik. Jeśli sterownik zostanie zidentyfikowany w komunikacie o błędzie zatrzymania, wyłącz sterownik, aby wyizolować problem. Skontaktuj się z producentem, aby uzyskać aktualizacje sterowników. Sprawdź dziennik systemowy w Podgląd zdarzeń, aby uzyskać inne komunikaty o błędach, które mogą pomóc w zidentyfikowaniu urządzenia lub sterownika, który powoduje błąd zatrzymania 0x133. Sprawdź, czy każdy zainstalowany nowy sprzęt jest zgodny z zainstalowaną wersją systemu Windows. Na przykład informacje o wymaganym sprzęcie można uzyskać w witrynie Windows 10 Specifications.For example, you can get information about required hardware at Windows 10 Specifications (Specyfikacje Windows 10). Jeśli jest zainstalowany debuger systemu Windows i masz dostęp do symboli publicznych, możesz załadować plik c:\windows\memory.dmp do debugera. Następnie zapoznaj się z artykułem Określanie źródła błędów sprawdzania błędów 0x133 (DPC_WATCHDOG_VIOLATION) na Windows Server 2012, aby znaleźć problematyczny sterownik ze zrzutu pamięci.

USER_MODE_HEALTH_MONITOR

Zatrzymaj kod błędu 0x0000009E

Ten błąd zatrzymania wskazuje, że sprawdzanie kondycji trybu użytkownika nie powiodło się w sposób uniemożliwiający bezproblemowe zamknięcie. System Windows przywraca usługi krytyczne przez ponowne uruchomienie lub włączenie trybu failover aplikacji na innych serwerach. Usługa klastrowania zawiera mechanizm wykrywania, który może wykrywać brak odpowiedzi w składnikach trybu użytkownika.

Ten błąd zatrzymania zwykle występuje w środowisku klastrowanym, a wskazany uszkodzony sterownik jest RHS.exe. Sprawdź dzienniki zdarzeń pod kątem błędów magazynu, aby zidentyfikować proces niepowodzenia. Spróbuj zaktualizować składnik lub proces wskazany w dziennikach zdarzeń. Powinno zostać zarejestrowane następujące zdarzenie:

  • Identyfikator zdarzenia: 4870
  • Źródło: Microsoft-Windows-FailoverClustering
  • Opis: Monitorowanie kondycji trybu użytkownika wykryło, że system nie reaguje. Karta wirtualna klastra trybu failover utraciła kontakt z procesem serwera klastra o identyfikatorze procesu %1 przez %2 sekundy. Jest wykonywana akcja odzyskiwania. Przejrzyj dzienniki klastra, aby zidentyfikować proces i zbadać, które elementy mogą spowodować zawieszenie procesu.

Aby uzyskać więcej informacji, zobacz "0x0000009E" Stop error on cluster nodes in a Windows Server-based multi-node failover cluster environment Also( "0x0000009E" Stop error on cluster nodes in a Windows Server-based multi-node failover cluster environment Also ,,see the following Microsoft video What to do do if a 9E occurs.

Przykłady debugowania

Przykład 1

Ta kontrola błędów jest spowodowana zawieszaniem się sterownika podczas uaktualniania, co powoduje sprawdzenie błędu D1 w NDIS.sys, który jest sterownikiem firmy Microsoft. IMAGE_NAME informuje o błędnym sterowniku, ale ponieważ ten sterownik jest sterownikiem firmy Microsoft, nie można go zastąpić ani usunąć. Metoda rozpoznawania polega na wyłączeniu urządzenia sieciowego w menedżerze urządzeń i ponownej próbie uaktualnienia.

2: kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
An attempt was made to access a pageable (or completely invalid) address at an
interrupt request level (IRQL) that is too high.  This is usually
caused by drivers using improper addresses.
If kernel debugger is available get stack backtrace.
Arguments:
Arg1: 000000000011092a, memory referenced
Arg2: 0000000000000002, IRQL
Arg3: 0000000000000001, value 0 = read operation, 1 = write operation
Arg4: fffff807aa74f4c4, address which referenced memory
Debugging Details:
------------------

KEY_VALUES_STRING: 1
STACKHASH_ANALYSIS: 1
TIMELINE_ANALYSIS: 1
DUMP_CLASS: 1
DUMP_QUALIFIER: 400
SIMULTANEOUS_TELSVC_INSTANCES:  0
SIMULTANEOUS_TELWP_INSTANCES:  0
BUILD_VERSION_STRING:  16299.15.amd64fre.rs3_release.170928-1534
SYSTEM_MANUFACTURER:  Alienware
SYSTEM_PRODUCT_NAME:  Alienware 15 R2
SYSTEM_SKU:  Alienware 15 R2
SYSTEM_VERSION:  1.2.8
BIOS_VENDOR:  Alienware
BIOS_VERSION:  1.2.8
BIOS_DATE:  01/29/2016
BASEBOARD_MANUFACTURER:  Alienware
BASEBOARD_PRODUCT:  Alienware 15 R2
BASEBOARD_VERSION:  A00
DUMP_TYPE:  2
BUGCHECK_P1: 11092a
BUGCHECK_P2: 2
BUGCHECK_P3: 1
BUGCHECK_P4: fffff807aa74f4c4
WRITE_ADDRESS: fffff80060602380: Unable to get MiVisibleState
Unable to get NonPagedPoolStart
Unable to get NonPagedPoolEnd
Unable to get PagedPoolStart
Unable to get PagedPoolEnd
000000000011092a 
CURRENT_IRQL:  2
FAULTING_IP: 
NDIS!NdisQueueIoWorkItem+4 [minio\ndis\sys\miniport.c @ 9708]
fffff807`aa74f4c4 48895120        mov     qword ptr [rcx+20h],rdx
CPU_COUNT: 8
CPU_MHZ: a20
CPU_VENDOR:  GenuineIntel
CPU_FAMILY: 6
CPU_MODEL: 5e
CPU_STEPPING: 3
CPU_MICROCODE: 6,5e,3,0 (F,M,S,R)  SIG: BA'00000000 (cache) BA'00000000 (init)
BLACKBOXPNP: 1 (!blackboxpnp)
DEFAULT_BUCKET_ID:  WIN8_DRIVER_FAULT
BUGCHECK_STR:  AV
PROCESS_NAME:  System
ANALYSIS_SESSION_HOST:  SHENDRIX-DEV0
ANALYSIS_SESSION_TIME:  01-17-2019 11:06:05.0653
ANALYSIS_VERSION: 10.0.18248.1001 amd64fre
TRAP_FRAME:  ffffa884c0c3f6b0 -- (.trap 0xffffa884c0c3f6b0)
NOTE: The trap frame doesn't contain all registers.
Some register values may be zeroed or incorrect.
rax=fffff807ad018bf0 rbx=0000000000000000 rcx=000000000011090a
rdx=fffff807ad018c10 rsi=0000000000000000 rdi=0000000000000000
rip=fffff807aa74f4c4 rsp=ffffa884c0c3f840 rbp=000000002408fd00
r8=ffffb30e0e99ea30  r9=0000000001d371c1 r10=0000000020000080
r11=0000000000000000 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0         nv up ei ng nz na pe nc
NDIS!NdisQueueIoWorkItem+0x4:
fffff807`aa74f4c4 48895120        mov     qword ptr [rcx+20h],rdx ds:00000000`0011092a=????????????????
Resetting default scope

LAST_CONTROL_TRANSFER:  from fffff800603799e9 to fffff8006036e0e0

STACK_TEXT:  
ffffa884`c0c3f568 fffff800`603799e9 : 00000000`0000000a 00000000`0011092a 00000000`00000002 00000000`00000001 : nt!KeBugCheckEx [minkernel\ntos\ke\amd64\procstat.asm @ 134] 
ffffa884`c0c3f570 fffff800`60377d7d : fffff78a`4000a150 ffffb30e`03fba001 ffff8180`f0b5d180 00000000`000000ff : nt!KiBugCheckDispatch+0x69 [minkernel\ntos\ke\amd64\trap.asm @ 2998] 
ffffa884`c0c3f6b0 fffff807`aa74f4c4 : 00000000`00000002 ffff8180`f0754180 00000000`00269fb1 ffff8180`f0754180 : nt!KiPageFault+0x23d [minkernel\ntos\ke\amd64\trap.asm @ 1248] 
ffffa884`c0c3f840 fffff800`60256b63 : ffffb30e`0e18f710 ffff8180`f0754180 ffffa884`c0c3fa18 00000000`00000002 : NDIS!NdisQueueIoWorkItem+0x4 [minio\ndis\sys\miniport.c @ 9708] 
ffffa884`c0c3f870 fffff800`60257bfd : 00000000`00000008 00000000`00000000 00000000`00269fb1 ffff8180`f0754180 : nt!KiProcessExpiredTimerList+0x153 [minkernel\ntos\ke\dpcsup.c @ 2078] 
ffffa884`c0c3f960 fffff800`6037123a : 00000000`00000000 ffff8180`f0754180 00000000`00000000 ffff8180`f0760cc0 : nt!KiRetireDpcList+0x43d [minkernel\ntos\ke\dpcsup.c @ 1512] 
ffffa884`c0c3fb60 00000000`00000000 : ffffa884`c0c40000 ffffa884`c0c39000 00000000`00000000 00000000`00000000 : nt!KiIdleLoop+0x5a [minkernel\ntos\ke\amd64\idle.asm @ 166] 

RETRACER_ANALYSIS_TAG_STATUS:  Failed in getting KPCR for core 2
THREAD_SHA1_HASH_MOD_FUNC:  5b59a784f22d4b5cbd5a8452fe39914b8fd7961d
THREAD_SHA1_HASH_MOD_FUNC_OFFSET:  5643383f9cae3ca39073f7721b53f0c633bfb948
THREAD_SHA1_HASH_MOD:  20edda059578820e64b723e466deea47f59bd675
FOLLOWUP_IP: 
NDIS!NdisQueueIoWorkItem+4 [minio\ndis\sys\miniport.c @ 9708]
fffff807`aa74f4c4 48895120        mov     qword ptr [rcx+20h],rdx
FAULT_INSTR_CODE:  20518948
FAULTING_SOURCE_LINE:  minio\ndis\sys\miniport.c
FAULTING_SOURCE_FILE:  minio\ndis\sys\miniport.c
FAULTING_SOURCE_LINE_NUMBER:  9708
FAULTING_SOURCE_CODE:  
  9704:     _In_ _Points_to_data_      PVOID                       WorkItemContext
  9705:     )
  9706: {
  9707: 
> 9708:     ((PNDIS_IO_WORK_ITEM)NdisIoWorkItemHandle)->Routine = Routine;
  9709:     ((PNDIS_IO_WORK_ITEM)NdisIoWorkItemHandle)->WorkItemContext = WorkItemContext;
  9710: 
  9711:     IoQueueWorkItem(((PNDIS_IO_WORK_ITEM)NdisIoWorkItemHandle)->IoWorkItem,
  9712:                     ndisDispatchIoWorkItem,
  9713:                     CriticalWorkQueue,

SYMBOL_STACK_INDEX:  3
SYMBOL_NAME:  NDIS!NdisQueueIoWorkItem+4
FOLLOWUP_NAME:  ndiscore
MODULE_NAME: NDIS
IMAGE_NAME:  NDIS.SYS
DEBUG_FLR_IMAGE_TIMESTAMP:  0
IMAGE_VERSION:  10.0.16299.99
DXGANALYZE_ANALYSIS_TAG_PORT_GLOBAL_INFO_STR:  Hybrid_FALSE
DXGANALYZE_ANALYSIS_TAG_ADAPTER_INFO_STR:  GPU0_VenId0x1414_DevId0x8d_WDDM1.3_Active;
STACK_COMMAND:  .thread ; .cxr ; kb
BUCKET_ID_FUNC_OFFSET:  4
FAILURE_BUCKET_ID:  AV_NDIS!NdisQueueIoWorkItem
BUCKET_ID:  AV_NDIS!NdisQueueIoWorkItem
PRIMARY_PROBLEM_CLASS:  AV_NDIS!NdisQueueIoWorkItem
TARGET_TIME:  2017-12-10T14:16:08.000Z
OSBUILD:  16299
OSSERVICEPACK:  98
SERVICEPACK_NUMBER: 0
OS_REVISION: 0
SUITE_MASK:  784
PRODUCT_TYPE:  1
OSPLATFORM_TYPE:  x64
OSNAME:  Windows 10
OSEDITION:  Windows 10 WinNt TerminalServer SingleUserTS Personal
OS_LOCALE:  
USER_LCID:  0
OSBUILD_TIMESTAMP:  2017-11-26 03:49:20
BUILDDATESTAMP_STR:  170928-1534
BUILDLAB_STR:  rs3_release
BUILDOSVER_STR:  10.0.16299.15.amd64fre.rs3_release.170928-1534
ANALYSIS_SESSION_ELAPSED_TIME:  8377
ANALYSIS_SOURCE:  KM
FAILURE_ID_HASH_STRING:  km:av_ndis!ndisqueueioworkitem
FAILURE_ID_HASH:  {10686423-afa1-4852-ad1b-9324ac44ac96}
FAILURE_ID_REPORT_LINK: https://go.microsoft.com/fwlink/?LinkID=397724&FailureHash=10686423-afa1-4852-ad1b-9324ac44ac96
Followup:     ndiscore
---------

Przykład 2

W tym przykładzie sterownik firmy innej niż Microsoft spowodował błąd strony, więc nie mamy symboli dla tego sterownika. Jednak patrząc na IMAGE_NAME i lub MODULE_NAME wskazuje, że przyczyną problemu jest WwanUsbMP.sys . Odłączenie urządzenia i ponowienie próby uaktualnienia jest możliwym rozwiązaniem.

1: kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

PAGE_FAULT_IN_NONPAGED_AREA (50)
Invalid system memory was referenced.  This can't be protected by try-except.
Typically the address is just plain bad or it is pointing at freed memory.
Arguments:
Arg1: 8ba10000, memory referenced.
Arg2: 00000000, value 0 = read operation, 1 = write operation.
Arg3: 82154573, If non-zero, the instruction address which referenced the bad memory
                address.
Arg4: 00000000, (reserved)

Debugging Details:
------------------

*** WARNING: Unable to verify timestamp for WwanUsbMp.sys
*** ERROR: Module load completed but symbols could not be loaded for WwanUsbMp.sys

KEY_VALUES_STRING: 1
STACKHASH_ANALYSIS: 1
TIMELINE_ANALYSIS: 1
DUMP_CLASS: 1
DUMP_QUALIFIER: 400
BUILD_VERSION_STRING:  16299.15.x86fre.rs3_release.170928-1534
MARKER_MODULE_NAME:  IBM_ibmpmdrv
SYSTEM_MANUFACTURER:  LENOVO
SYSTEM_PRODUCT_NAME:  20AWS07H00
SYSTEM_SKU:  LENOVO_MT_20AW_BU_Think_FM_ThinkPad T440p
SYSTEM_VERSION:  ThinkPad T440p
BIOS_VENDOR:  LENOVO
BIOS_VERSION:  GLET85WW (2.39 )
BIOS_DATE:  09/29/2016
BASEBOARD_MANUFACTURER:  LENOVO
BASEBOARD_PRODUCT:  20AWS07H00
BASEBOARD_VERSION:  Not Defined
DUMP_TYPE:  2
BUGCHECK_P1: ffffffff8ba10000
BUGCHECK_P2: 0
BUGCHECK_P3: ffffffff82154573
BUGCHECK_P4: 0
READ_ADDRESS: 822821d0: Unable to get MiVisibleState
8ba10000 
FAULTING_IP: 
nt!memcpy+33 [minkernel\crts\crtw32\string\i386\memcpy.asm @ 213
82154573 f3a5            rep movs dword ptr es:[edi],dword ptr [esi]
MM_INTERNAL_CODE:  0
CPU_COUNT: 4
CPU_MHZ: 95a
CPU_VENDOR:  GenuineIntel
CPU_FAMILY: 6
CPU_MODEL: 3c
CPU_STEPPING: 3
CPU_MICROCODE: 6,3c,3,0 (F,M,S,R)  SIG: 21'00000000 (cache) 21'00000000 (init)
BLACKBOXBSD: 1 (!blackboxbsd)
BLACKBOXPNP: 1 (!blackboxpnp)
DEFAULT_BUCKET_ID:  WIN8_DRIVER_FAULT
BUGCHECK_STR:  AV
PROCESS_NAME:  System
CURRENT_IRQL:  2
ANALYSIS_SESSION_HOST:  SHENDRIX-DEV0
ANALYSIS_SESSION_TIME:  01-17-2019 10:54:53.0780
ANALYSIS_VERSION: 10.0.18248.1001 amd64fre
TRAP_FRAME:  8ba0efa8 -- (.trap 0xffffffff8ba0efa8)
ErrCode = 00000000
eax=8ba1759e ebx=a2bfd314 ecx=00001d67 edx=00000002 esi=8ba10000 edi=a2bfe280
eip=82154573 esp=8ba0f01c ebp=8ba0f024 iopl=0         nv up ei pl nz ac pe nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010216
nt!memcpy+0x33:
82154573 f3a5            rep movs dword ptr es:[edi],dword ptr [esi]
Resetting default scope
LOCK_ADDRESS:  8226c6e0 -- (!locks 8226c6e0)
Cannot get _ERESOURCE type
Resource @ nt!PiEngineLock (0x8226c6e0)    Available
1 total locks
PNP_TRIAGE_DATA: 
                Lock address  : 0x8226c6e0
                Thread Count  : 0
                Thread address: 0x00000000
                Thread wait   : 0x0

LAST_CONTROL_TRANSFER:  from 82076708 to 821507e8

STACK_TEXT:  
8ba0ede4 82076708 00000050 8ba10000 00000000 nt!KeBugCheckEx [minkernel\ntos\ke\i386\procstat.asm @ 114] 
8ba0ee40 8207771e 8ba0efa8 8ba10000 8ba0eea0 nt!MiSystemFault+0x13c8 [minkernel\ntos\mm\mmfault.c @ 4755] 
8ba0ef08 821652ac 00000000 8ba10000 00000000 nt!MmAccessFault+0x83e [minkernel\ntos\mm\mmfault.c @ 6868] 
8ba0ef08 82154573 00000000 8ba10000 00000000 nt!_KiTrap0E+0xec [minkernel\ntos\ke\i386\trap.asm @ 5153] 
8ba0f024 86692866 a2bfd314 8ba0f094 0000850a nt!memcpy+0x33 [minkernel\crts\crtw32\string\i386\memcpy.asm @ 213] 
8ba0f040 866961bc 8ba0f19c a2bfd0e8 00000000 NDIS!ndisMSetPowerManagementCapabilities+0x8a [minio\ndis\sys\miniport.c @ 7969] 
8ba0f060 866e1f66 866e1caf adfb9000 00000000 NDIS!ndisMSetGeneralAttributes+0x23d [minio\ndis\sys\miniport.c @ 8198] 
8ba0f078 ac50c15f a2bfd0e8 0000009f 00000001 NDIS!NdisMSetMiniportAttributes+0x2b7 [minio\ndis\sys\miniport.c @ 7184] 
WARNING: Stack unwind information not available. Following frames may be wrong.
8ba0f270 ac526f96 adfb9000 a2bfd0e8 8269b9b0 WwanUsbMp+0x1c15f
8ba0f3cc 866e368a a2bfd0e8 00000000 8ba0f4c0 WwanUsbMp+0x36f96
8ba0f410 867004b0 a2bfd0e8 a2bfd0e8 a2be2a70 NDIS!ndisMInvokeInitialize+0x60 [minio\ndis\sys\miniport.c @ 13834] 
8ba0f7ac 866dbc8e a2acf730 866b807c 00000000 NDIS!ndisMInitializeAdapter+0xa23 [minio\ndis\sys\miniport.c @ 601] 
8ba0f7d8 866e687d a2bfd0e8 00000000 00000000 NDIS!ndisInitializeAdapter+0x4c [minio\ndis\sys\initpnp.c @ 931] 
8ba0f800 866e90bb adfb64d8 00000000 a2bfd0e8 NDIS!ndisPnPStartDevice+0x118 [minio\ndis\sys\configm.c @ 4235] 
8ba0f820 866e8a58 adfb64d8 a2bfd0e8 00000000 NDIS!ndisStartDeviceSynchronous+0xbd [minio\ndis\sys\ndispnp.c @ 3096] 
8ba0f838 866e81df adfb64d8 8ba0f85e 8ba0f85f NDIS!ndisPnPIrpStartDevice+0xb4 [minio\ndis\sys\ndispnp.c @ 1067] 
8ba0f860 820a7e98 a2bfd030 adfb64d8 8ba0f910 NDIS!ndisPnPDispatch+0x108 [minio\ndis\sys\ndispnp.c @ 2429] 
8ba0f878 8231f07e 8ba0f8ec adf5d4c8 872e2eb8 nt!IofCallDriver+0x48 [minkernel\ntos\io\iomgr\iosubs.c @ 3149] 
8ba0f898 820b8569 820c92b8 872e2eb8 8ba0f910 nt!PnpAsynchronousCall+0x9e [minkernel\ntos\io\pnpmgr\irp.c @ 3005] 
8ba0f8cc 820c9a76 00000000 820c92b8 872e2eb8 nt!PnpSendIrp+0x67 [minkernel\ntos\io\pnpmgr\irp.h @ 286] 
8ba0f914 8234577b 872e2eb8 adf638b0 adf638b0 nt!PnpStartDevice+0x60 [minkernel\ntos\io\pnpmgr\irp.c @ 3187] 
8ba0f94c 82346cc7 872e2eb8 adf638b0 adf638b0 nt!PnpStartDeviceNode+0xc3 [minkernel\ntos\io\pnpmgr\start.c @ 1712] 
8ba0f96c 82343c68 00000000 a2bdb3d8 adf638b0 nt!PipProcessStartPhase1+0x4d [minkernel\ntos\io\pnpmgr\start.c @ 114] 
8ba0fb5c 824db885 8ba0fb80 00000000 00000000 nt!PipProcessDevNodeTree+0x386 [minkernel\ntos\io\pnpmgr\enum.c @ 6129] 
8ba0fb88 8219571b 85852520 8c601040 8226ba90 nt!PiRestartDevice+0x91 [minkernel\ntos\io\pnpmgr\enum.c @ 4743] 
8ba0fbe8 820804af 00000000 00000000 8c601040 nt!PnpDeviceActionWorker+0xdb4b7 [minkernel\ntos\io\pnpmgr\action.c @ 674] 
8ba0fc38 8211485c 85852520 421de295 00000000 nt!ExpWorkerThread+0xcf [minkernel\ntos\ex\worker.c @ 4270] 
8ba0fc70 82166785 820803e0 85852520 00000000 nt!PspSystemThreadStartup+0x4a [minkernel\ntos\ps\psexec.c @ 7756] 
8ba0fc88 82051e07 85943940 8ba0fcd8 82051bb9 nt!KiThreadStartup+0x15 [minkernel\ntos\ke\i386\threadbg.asm @ 82] 
8ba0fc94 82051bb9 8b9cc600 8ba10000 8ba0d000 nt!KiProcessDeferredReadyList+0x17 [minkernel\ntos\ke\thredsup.c @ 5309] 
8ba0fcd8 00000000 00000000 00000000 00000000 nt!KeSetPriorityThread+0x249 [minkernel\ntos\ke\thredobj.c @ 3881] 


RETRACER_ANALYSIS_TAG_STATUS:  Failed in getting KPCR for core 1
THREAD_SHA1_HASH_MOD_FUNC:  e029276c66aea80ba36903e89947127118d31128
THREAD_SHA1_HASH_MOD_FUNC_OFFSET:  012389f065d31c8eedd6204846a560146a38099b
THREAD_SHA1_HASH_MOD:  44dc639eb162a28d47eaeeae4afe6f9eeccced3d
FOLLOWUP_IP: 
WwanUsbMp+1c15f
ac50c15f 8bf0            mov     esi,eax
FAULT_INSTR_CODE:  f33bf08b
SYMBOL_STACK_INDEX:  8
SYMBOL_NAME:  WwanUsbMp+1c15f
FOLLOWUP_NAME:  MachineOwner
MODULE_NAME: WwanUsbMp
IMAGE_NAME:  WwanUsbMp.sys
DEBUG_FLR_IMAGE_TIMESTAMP:  5211bb0c
DXGANALYZE_ANALYSIS_TAG_PORT_GLOBAL_INFO_STR:  Hybrid_FALSE
DXGANALYZE_ANALYSIS_TAG_ADAPTER_INFO_STR:  GPU0_VenId0x1414_DevId0x8d_WDDM1.3_NotActive;GPU1_VenId0x8086_DevId0x416_WDDM1.3_Active_Post;
STACK_COMMAND:  .thread ; .cxr ; kb
BUCKET_ID_FUNC_OFFSET:  1c15f
FAILURE_BUCKET_ID:  AV_R_INVALID_WwanUsbMp!unknown_function
BUCKET_ID:  AV_R_INVALID_WwanUsbMp!unknown_function
PRIMARY_PROBLEM_CLASS:  AV_R_INVALID_WwanUsbMp!unknown_function
TARGET_TIME:  2018-02-12T11:33:51.000Z
OSBUILD:  16299
OSSERVICEPACK:  15
SERVICEPACK_NUMBER: 0
OS_REVISION: 0
SUITE_MASK:  272
PRODUCT_TYPE:  1
OSPLATFORM_TYPE:  x86
OSNAME:  Windows 10
OSEDITION:  Windows 10 WinNt TerminalServer SingleUserTS
OS_LOCALE:  
USER_LCID:  0
OSBUILD_TIMESTAMP:  2017-09-28 18:32:28
BUILDDATESTAMP_STR:  170928-1534
BUILDLAB_STR:  rs3_release
BUILDOSVER_STR:  10.0.16299.15.x86fre.rs3_release.170928-1534
ANALYSIS_SESSION_ELAPSED_TIME:  162bd
ANALYSIS_SOURCE:  KM
FAILURE_ID_HASH_STRING:  km:av_r_invalid_wwanusbmp!unknown_function
FAILURE_ID_HASH:  {31e4d053-0758-e43a-06a7-55f69b072cb3}
FAILURE_ID_REPORT_LINK: https://go.microsoft.com/fwlink/?LinkID=397724&FailureHash=31e4d053-0758-e43a-06a7-55f69b072cb3

Followup:     MachineOwner
---------

ReadVirtual: 812d1248 not properly sign extended

Informacje

Dokumentacja kodu sprawdzania błędów