Kernel Élő Dump Kód Referencia

Ez a szakasz a gyakori kernel élő memóriafő kódok leírását tartalmazza, amelyek előfordulhatnak. Az élő memóriadumpok nem állítják alaphelyzetbe az operációs rendszert, hanem lehetővé teszik a memóriaadatok rögzítését olyan rendellenes helyzetekben, amikor az operációs rendszer tovább működjön.

Megjegyzés:

Ez a témakör programozóknak szól. Ha Ön olyan ügyfél, akinek a rendszere kék képernyőt jelenít meg hibaellenőrzési kóddal, tekintse meg a kék képernyő hibáinak elhárítása című témakört.

Kernel élő memóriaképe a hibaellenőrzéshez képest

A hagyományos hibaellenőrzéssel a számítógép alaphelyzetbe áll, és a felhasználó munkája megszakad. A kernel élő mentés célja, hogy adatokat gyűjtsön össze egy rendellenes helyzet elhárítása érdekében, de lehetővé tegye az operációs rendszer számára a működés folytatását. Ez csökkenti az állásidőt a "nem végzetes", de magas kihatású hibák és lefagyások hibajavításához képest. A rendszermag élő memóriaképeit akkor használja a rendszer, ha az operációs rendszer helyreállítható egy ismert jó állapotban. Például egy alrendszer hardveres alaphelyzetbe állítása( például videó/kijelző, USB3 vagy Wi-Fi) lehetővé teszi, hogy ezek a rendszerek minimális felhasználói hatással térjenek vissza egy ismert jó állapotba.

A kernel élő memóriakiírat konzisztens pillanatképet hoz létre a kernelmemóriáról, és egy kiírási fájlba menti jövőbeli elemzésekhez. Az előadásra gyakorolt hatás minimalizálása érdekében memóriamásolási technikákat alkalmaznak, hogy rövid idő alatt létrehozzák a memóriaképfájlt. Emellett az élő memóriaképek gyűjteménye szabályozva van, így a felhasználói hatás minimálisra csökken.

A kernel élő dump hatékony olyan problémák esetén, ahol valami hosszú ideig tart, és technikailag semmi sem romlott el. A watchdog időzítő inicializálható egy művelet indításakor. Ha a figyelő lejár, mielőtt a művelet a vártnál korábban befejeződik, a rendszermag memóriaállapotának mentése végrehajtható. Ezután a memóriakép elemezhető a hívásverem és a kapcsolódó várakozási lánc bejárásával annak vizsgálatához, hogy miért nem fejezhető be a várt időkerettel.

A rendszernaplók jól működnek, ha valami meghibásodik, és a kód tulajdonosa rögzítette a hiba okát, és képes azonosítani az okot. A watchdog időzítőket használó élő memóriaképek megpróbálják érzékelni az előre nem látott és ezért nem naplózott hibaelérési útvonalakat. De mint minden hiba esetén, a rendszernaplók is azonosíthatnak más problémákat, amelyek nyomokat adhatnak a hiba konkrét kiváltó okához.

Kernel élő dump fájl tartalma

A normál memóriaképfájlokhoz hasonlóan az élő memóriaképek minidumpokat (másodlagos adatokkal) és teljes kernelképeket is tartalmazhatnak, amelyek felhasználói módú memóriát is tartalmazhatnak, hasonlóan az aktív memóriaképekhez. A memóriaképfájl tartalmával kapcsolatos általános információkért lásd a Kernel-Mode memóriaképfájlok fajtái című témakört. Egyes élő memóriaképek csak minidumpokat próbálnak rögzíteni, mivel bizonyos hardveres adatok rögzítésére lettek tervezve, míg mások nagyobb kernel-élő memóriaképet próbálnak rögzíteni.

A teljesítmény, a fájlméret és a memóriakép-rögzítések megbízhatósága érdekében bizonyos információk nem szerepelnek ilyen esetekben, mint például a készenléti lista lapjai és a fájlgyorsítótárak.

Az élő memória dump fájlok általában olyan memórialapokat tartalmaznak, mint:

  • KdDebuggerBlock
  • Betöltött modullista

Minden processzor esetében a rendszer a következő adatokat rögzíti a kernelképekben:

  • KiProcessorBlock
  • PRCB-k
  • Aktuális verem
  • Aktuális lapkönyvtár tábla
  • KI_USER_SHARED_DATA
  • NTOS kernelkép
  • HAL kép

A kernel dumpok további információi a következők lehetnek:

  • Szál/ memória állapota
  • Memóriabeli naplózás

Egyes élő memóriaképek felhasználói módú folyamatok oldalait tartalmazhatják.

Egyes élő memóriaképekhez további tartományspecifikus adatok is tartozhatnak, például usb-specifikus adatok az USB-hibákhoz.

Részleges kernel élő lerakódási fájl

Előfordulhat, hogy részleges kernel élő dumpfájl jön létre olyan helyzetekben, amikor az élő memóriakép nem képes megbízhatóan rögzíteni az összes tervezett memóriaoldalt. A részleges memóriaképben rögzített információk szűrése és rangsorolása úgy történik, hogy olyan oldalakat rögzít, amelyek fontos adatokat tartalmaznak ahhoz, hogy érvényes memóriaképet hozhassanak létre más lapok előtt. A kernel lapok például prioritást élveznek a felhasználói lapokkal szemben, amikor az élő dömp felhasználói lapokat is tartalmaz. Bizonyos helyzetekben nem áll rendelkezésre elegendő erőforrás az összes tervezett opcionális memórialap rögzítéséhez, ezért előfordulhat, hogy a memória hiányzik a memóriaképfájlból. A hibatározófájlt továbbra is fel kell ismernie a WinDbg hibakereső programjának, de előfordulhatnak hibák, amikor memóriadumpot próbál készíteni. Ha a hibakereső hibát jelez, amikor memóriát próbál kiírni egy címnél, a !pte kiterjesztést használhatja annak ellenőrzésére, hogy a cím PTE-je érvényes-e vagy sem. Ez segíthet annak megállapításában, hogy a memóriacím valóban érvénytelen-e, vagy a lap érvényes, de egyszerűen nem érhető el a dömp fájlban.

Élő memóriaképfájlok elemzése

Ha élő memória-kép készül, a memória dump fájl ugyanazokkal a technikákkal elemezhető, mint a többi memória dump fájl esetében. A memória tartalmának hiba esetén történő megértéséhez ismerni kell a processzor memóriaregisztrálását és a szerelvény programozását.

További információkért lásd:

A WinDbg segítségével az élő memória dömp stopkód információk megjelenítése

Ha egy adott élő memória dump kód nem jelenik meg ebben a témakörben, használja a !analyze bővítményt a Windows Hibakeresőben (WinDbg) a következő szintaxissal (kernel módban), és cserélje le <code> egy élő memória dump kóddal.

!analyze -show <code>

A parancs beírásával a WinDbg megjeleníti a megadott élő memória-hibaállapot adatait. Ha az alapértelmezett számbázis (radix) nem 16, akkor adjon hozzá az <code> előtaghoz 0x.

Adja meg az élő dump kódparamétereit a !analyze parancsnak, hogy megjelenítse az elérhető paraméterinformációkat. Ha például a hibaellenőrzési 0x144 BUGCODE_USB3_DRIVER adatait szeretné megjeleníteni, az 1. paraméter értéke 0x3003, használja !analyze -show 0x144 0x3003 az itt látható módon.

0: kd> !analyze -show 0x144 0x3003
BUGCODE_USB3_DRIVER (144)
This bugcheck usually happens when the USB3 core stack detects an invalid
operation being performed by a USB client. This bugcheck may also occur
due to hardware failure on a USB Boot Device.
Arguments:
Arg1: 0000000000003003, USB3_WER_BUGCODE_USBHUB3_DEVICE_ENUMERATION_FAILURE
	A USB device failed enumeration.
Arg2: 0000000000000000, USBHUB3_LIVEDUMP_CONTEXT
Arg3: 0000000000000000, 0
Arg4: 0000000000000000, 0

A WinDbg letöltéséhez lásd a Windows hibakeresési eszközeit. A WinDbg fejlesztői eszközeivel kapcsolatos további információkért tekintse meg a Windows hibakeresés első lépéseit.

Élő hibakiíró fájl helyei

Az élő dumpok alapértelmezés szerint a "C:\WINDOWS\LiveKernelReports" könyvtárban vannak tárolva.

Teljes memória-dumpok: %systemroot%\LiveKernelReports\*.dmp

Minidumps: %systemroot%\LiveKernelReports\<ComponentName>\*.dmp

A címtárstruktúra különböző összetevők élő memóriaképeinek tárolására szolgál.

NDIS
PDCRevocation
PoW32kWatchdog
USBHUB3
WATCHDOG

Élő dump rendszerleíró kulcsok

A rendszer által létrehozott élő kerneljelentések konfigurációs beállításairól további információt a WER beállításai című témakörben talál.

Élő dump manuális kezdeményezése PowerShell használatával

  1. Nyisson meg egy rendszergazdai PowerShell parancssort.

  2. Szerezze meg a StorageSubsystem barátságos nevét a Get-StorageSubSystem PowerShell paranccsal.

 C:\> Get-StorageSubSystem
 FriendlyName                     HealthStatus OperationalStatus
 ------------                     ------------ -----------------
 Windows Storage on 10-2411-PC    Healthy      OK
  1. A Get-StorageDiagnosticInfo használatával készítsen élő memóriaképet a fenti alrendszerhez (más diagnosztikai naplókkal együtt). További információ: Get-StorageDiagnosticInfo.
 C:\> Get-StorageDiagnosticInfo -StorageSubSystemFriendlyName "Windows Storage on 10-2411-PC" -IncludeLiveDump -DestinationPath C:\destinationfolder
  1. A kimenet azt jelzi, hogy a kért információ létre lett hozva.
Gathering storage subsystem diagnostic information                                                                         
Running                                                                                                                 
[oooooooooooo                                                                                              ] 
  1. A kivonat a [DestinationPath]\localhost belsejében lesz.
 C:\> dir C:\destinationfolder\localhost\*.dmp
   Directory: C:\destinationfolder\localhost
 Mode                LastWriteTime         Length Name
 ----                -------------         ------ ----
 -a----         5/5/2016   1:08 PM      867135488 LiveDump.dmp
  1. Ha a hibakeresővel futtatja a !analyze parancsot a memóriaképfájlon, az azt jelzi, hogy ez egy LIVE_SYSTEM_DUMP (161) élő memóriaképkód.

Kernel élő memória dump kódjai

Az alábbi táblázat a kernel élő memóriaképkódjaira mutató hivatkozásokat tartalmaz.

Kód Név
0x000000AB SESSION_HAS_VALID_POOL_ON_EXIT
0x00000117 VIDEO_TDR_TIMEOUT_DETECTED
0x00000141 VIDEO_MOTOR_IDŐTÚLLÉPÉS_ÉSZLELVE
0x00000142 VIDEO_TDR_APPLICATION_BLOCKED
0x00000156 WINSOCK_DETECTED_HUNG_CLOSESOCKET_LIVEDUMP
0x0000015C PDC_WATCHDOG_TIMEOUT_LIVEDUMP
0x0000015D SOC_SUBSYSTEM_FAILURE_LIVEDUMP
0x0000015E BUGCODE_NDIS_DRIVER_LIVE_DUMP
0x0000015F CONNECTED_STANDBY_WATCHDOG_TIMEOUT_LIVEDUMP
0x00000161 LIVE_SYSTEM_DUMP
0x00000165 CLUSTER_CSV_STATUS_IO_TIMEOUT_LIVEDUMP
0x00000166 CLUSTER_RESOURCE_CALL_TIMEOUT_LIVEDUMP
0x00000167 CLUSTER_CSV_SNAPSHOT_DEVICE_INFO_TIMEOUT_LIVEDUMP
0x00000168 CLUSTER_CSV_STATE_TRANSITION_TIMEOUT_LIVEDUMP
0x00000169 CLUSTER_CSV_VOLUME_ARRIVAL_LIVEDUMP
0x0000016A CLUSTER_CSV_VOLUME_REMOVAL_LIVEDUMP
0x0000016B CLUSTER_CSV_CLUSTER_WATCHDOG_LIVEDUMP
0x0000016F CLUSTER_CSV_STATE_TRANSITION_INTERVAL_TIMEOUT_LIVEDUMP
0x00000175 KORÁBBI_VÉGZETES_ABNORMÁLIS_ALAPHELYZETBE_ÁLLÍTÁSI_HIBA
0x00000179 CLUSTER_CLUSPORT_STATUS_IO_TIMEOUT_LIVEDUMP
0x0000017C PDC_LOCK_WATCHDOG_LIVEDUMP
0x0000017D PDC_UNEXPECTED_REVOCATION_LIVEDUMP
0x00000187 VIDEO_DWMINIT_TIMEOUT_FALLBACK_BDD
0x00000188 CLUSTER_CSVFS_LIVEDUMP
0x00000190 WIN32K_CRITICAL_FAILURE_LIVEDUMP
0x00000193 VIDEO_DXGKRNL_LIVEDUMP
0x00000195 SMB_SERVER_LIVEDUMP
0x00000198 UFX_LIVEDUMP
0x0000019D CLUSTER_SVHDX_LIVEDUMP
0x000001A1 WIN32K_CALLOUT_WATCHDOG_LIVEDUMP
0x000001A3 CALL_HAS_NOT_RETURNED_WATCHDOG_TIMEOUT_LIVEDUMP
0x000001A4 DRIPS_SW_HW_DIVERGENCE_LIVEDUMP
0x000001A5 USB_DRIPS_BLOCKER_SURPRISE_REMOVAL_LIVEDUMP
0x000001A6 BLUETOOTH_ERROR_RECOVERY_LIVEDUMP
0x000001A7 SMB_REDIRECTOR_LIVEDUMP
0x000001A8 VIDEO_DXGKRNL_BLACK_SCREEN_LIVEDUMP
0x000001A9 DIRECTED_FX_TRANSITION_LIVEDUMP
0x000001B0 VIDEO_MINIPORT_FAILED_LIVEDUMP
0x000001B8 VIDEO_MINIPORT_BLACK_SCREEN_LIVEDUMP
0x000001C4 DRIVER_VERIFIER_DETECTED_VIOLATION_LIVEDUMP
0x000001C5 IO_THREADPOOL_DEADLOCK_LIVEDUMP
0x000001C9 USER_MODE_HEALTH_MONITOR_LIVEDUMP
0x000001CC EXRESOURCE_TIMEOUT_LIVEDUMP
0x000001D1 TELEMETRY_ASSERTS_LIVEDUMP
0x000001D4 UCMUCSI_LIVEDUMP
0x000001E1 DEVICE_DIAGNOSTIC_LOG_LIVEDUMP
0x000001F5 APPLICATION_HANG_KERNEL_LIVEDUMP
0x000021C8 KÉZZEL_INDÍTOTT_FEKETEKÉPERNYŐ_BILLENTYŰPARANCS_ÉLŐ_MENTÉS

Ezek a leállítási kódok használhatók élő hibaüzenetekhez vagy az eszköz hibakereséséhez.

Kód Név
0x00000124 WHEA_UNCORRECTABLE_ERROR
0x00000144 BUGCODE_USB3_DRIVER
0x00000164 WIN32K_CRITICAL_FAILURE

Lásd még

Hibaellenőrzési kódok referenciája

!analyze

Hibaellenőrzések (kék képernyők)

Hibaellenőrzés kék képernyős adatainak elemzése