Share via


Fehlerprüfung 0x116: VIDEO_TDR_FAILURE

Die VIDEO_TDR_FAILURE-Fehlerprüfung weist den Wert 0x00000116 auf. Diese Fehlerprüfung zeigt an, dass der Versuch, den Anzeigetreiber zurückzusetzen und nach einem Timeout wiederherzustellen, fehlgeschlagen ist.

Wichtig

Dieser Artikel richtet sich an Programmierer. Wenn Sie ein Kunde sind, der während der Verwendung Ihres Computers einen Bluescreen-Fehlercode erhalten hat, finden Sie weitere Informationen unter Behandeln von Bluescreenfehlern.

VIDEO_TDR_FAILURE Parameter

Parameter BESCHREIBUNG
1 Der Zeiger auf den internen TDR-Wiederherstellungskontext, falls verfügbar.
2 Ein Zeiger auf das zuständige Gerätetreibermodul (z. B. das Besitzertag).
3 Der Fehlercode des letzten fehlgeschlagenen Vorgangs, sofern verfügbar.
4 Interne kontextabhängige Daten, falls verfügbar.

Ursache

Ein häufiges Stabilitätsproblem in Grafiken tritt auf, wenn das System während der Verarbeitung eines Endbenutzerbefehls oder -vorgangs vollständig fixiert oder aufgehängt erscheint. In der Regel ist die GPU damit beschäftigt, intensive Grafikvorgänge zu verarbeiten, in der Regel während des Spiels. Es werden keine Bildschirmupdates durchgeführt, und Benutzer gehen davon aus, dass ihr System eingefroren ist. Benutzer warten in der Regel einige Sekunden und starten das System dann durch Drücken des Netzschalters neu. Windows versucht, diese problematischen Hängenbleibensituationen zu erkennen und dynamisch einen reaktionsfähigen Desktop wiederherzustellen.

Dieser Prozess der Erkennung und Wiederherstellung wird als Timeouterkennung und -wiederherstellung (Timeout Detection and Recovery, TDR) bezeichnet. Das Standardtimeout beträgt 2 Sekunden. Im TDR-Prozess für Grafikkarten ruft der GPU-Scheduler des Betriebssystems die DxgkDdiResetFromTimeout-Funktion des Anzeige-Miniporttreibers auf, um den Treiber neu zu initialisieren und die GPU zurückzusetzen.

Während dieses Vorgangs weist das Betriebssystem den Treiber an, nicht auf die Hardware oder den Arbeitsspeicher zuzugreifen, und gibt dem Treiber eine kurze Zeit, bis die derzeit ausgeführten Threads abgeschlossen sind. Wenn die Threads innerhalb des Timeouts nicht abgeschlossen werden, überprüft der Systemfehler mit 0x116 VIDEO_TDR_FAILURE. Weitere Informationen finden Sie unter Threadsynchronisierung und TDR.

Das System kann auch eine Fehlerüberprüfung mit VIDEO_TDR_FAILURE, wenn mehrere TDR-Ereignisse in kurzer Zeit auftreten. Der Standardbetrag beträgt mehr als fünf TDRs in einer Minute.

Wenn der Wiederherstellungsvorgang erfolgreich ist, wird eine Meldung angezeigt, die besagt, dass der Anzeigetreiber nicht mehr reagiert und wiederhergestellt wurde.

Weitere Informationen finden Sie unter Timeouterkennung und -wiederherstellung (TDR),TDR-Registrierungsschlüssel und TDR-Änderungen in Windows 8 und höher.

Lösung

Die GPU nimmt mehr Zeit in Anspruch, als für die Anzeige von Grafiken auf Ihrem Monitor zulässig ist. Dieses Verhalten kann aus einem oder mehreren der folgenden Gründe auftreten:

  • Möglicherweise müssen Sie die neuesten Updates für Ihren Anzeigetreiber installieren, damit er den TDR-Prozess ordnungsgemäß unterstützt.
  • Hardwareprobleme, die sich auf die Funktionsfähigkeit des Video-Karte auswirken, einschließlich:
    • Übertaktete Komponenten, z. B. die Hauptplatine
    • Falsche Komponentenkompatibilität und -einstellungen (insbesondere Speicherkonfiguration und -timings)
    • Unzureichende Systemkühlung
    • Unzureichende Systemleistung
    • Defekte Teile (Speichermodule, Motherboards usw.)
  • Visuelle Effekte oder zu viele Programme, die im Hintergrund ausgeführt werden, können Ihren PC verlangsamen, sodass das Video Karte nicht bei Bedarf reagieren kann.

Die !analyze-Debugerweiterung zeigt Informationen zur Fehlerüberprüfung an und kann bei der Ermittlung der Grundursache hilfreich sein.

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

VIDEO_TDR_FAILURE (116)
Attempt to reset the display driver and recover from timeout failed.
Arguments:
Arg1: ffffe000c2c404c0, Optional pointer to internal TDR recovery context (TDR_RECOVERY_CONTEXT).
Arg2: fffff8016470c14c, The pointer into responsible device driver module (e.g. owner tag).
Arg3: ffffffffc000009a, Optional error code (NTSTATUS) of the last failed operation.
Arg4: 0000000000000004, Optional internal context dependent data.

...

Der Name des fehlerhaften Moduls wird ebenfalls angezeigt.

MODULE_NAME: nvlddmkm

IMAGE_NAME:  nvlddmkm.sys

Sie können den Befehl lm (List Loaded Modules) verwenden, um Informationen zum fehlerhaften Treiber anzuzeigen, einschließlich des Zeitstempels.

1: kd> lmvm nvlddmkm
Browse full module list
start             end                 module name
fffff801`63ec0000 fffff801`649a7000   nvlddmkm T (no symbols)           
    Loaded symbol image file: nvlddmkm.sys
    Image path: \SystemRoot\system32\DRIVERS\nvlddmkm.sys
    Image name: nvlddmkm.sys
    Browse all global symbols  functions  data
    Timestamp:        Wed Jul  8 15:43:44 2015 (559DA7A0)
    CheckSum:         00AA7491
    ImageSize:        00AE7000
    Translations:     0000.04b0 0000.04e4 0409.04b0 0409.04e4

Parameter 1 enthält einen Zeiger auf die TDR_RECOVERY_CONTEXT. Wie in der !analyze-Ausgabe gezeigt, können Sie diese Daten mit dem dt Befehl anzeigen, wenn Sie über Symbole für den zugeordneten Code verfügen.

1: kd> dt dxgkrnl!_TDR_RECOVERY_CONTEXT ffffe000c2c404c0
   +0x000 Signature        : 0x52445476
   +0x008 pState           : 0xffffe000`c2b12a40 ??
   +0x010 TimeoutReason    : 9 ( TdrEngineTimeoutPromotedToAdapterReset )
   +0x018 Tick             : _ULARGE_INTEGER 0xb2
   +0x020 pAdapter         : 0xffffe000`c2a89010 DXGADAPTER
   +0x028 pVidSchContext   : (null) 
   +0x030 GPUTimeoutData   : _TDR_RECOVERY_GPU_DATA
   +0x048 CrtcTimeoutData  : _TDR_RECOVERY_CONTEXT::<unnamed-type-CrtcTimeoutData>
   +0x050 pProcessName     : (null) 
   +0x058 DbgOwnerTag      : 0xfffff801`6470c14c
   +0x060 PrivateDbgInfo   : _TDR_DEBUG_REPORT_PRIVATE_INFO
   +0xb00 pDbgReport       : 0xffffe000`c2c3f750 _WD_DEBUG_REPORT
   +0xb08 pDbgBuffer       : 0xffffc000`bd000000 Void
   +0xb10 DbgBufferSize    : 0x37515
   +0xb18 pDumpBufferHelper : (null) 
   +0xb20 pDbgInfoExtension : 0xffffc000`ba7e47a0 _DXGKARG_COLLECTDBGINFO_EXT
   +0xb28 pDbgBufferUpdatePrivateInfo : 0xffffc000`bd000140 Void
   +0xb30 ReferenceCount   : 0n1
   +0xb38 pResetCompletedEvent : (null) 

Parameter 2 enthält einen Zeiger auf das zuständige Gerätetreibermodul (z. B. das Besitzertag).

1: kd> ub fffff8016470c14c
nvlddmkm+0x84c132:
fffff801`6470c132 cc              int     3
fffff801`6470c133 cc              int     3
fffff801`6470c134 48ff254d2deaff  jmp     qword ptr [nvlddmkm+0x6eee88 (fffff801`645aee88)]
fffff801`6470c13b cc              int     3
fffff801`6470c13c 48ff252d2eeaff  jmp     qword ptr [nvlddmkm+0x6eef70 (fffff801`645aef70)]
fffff801`6470c143 cc              int     3
fffff801`6470c144 48ff257d2deaff  jmp     qword ptr [nvlddmkm+0x6eeec8 (fffff801`645aeec8)]
fffff801`6470c14b cc              int     3

Sie können die Stapelüberwachung mit dem Befehl k, kb, kc, kd, kp, kP, kv (Display Stack Backtrace) untersuchen.

1: kd> k
 # Child-SP          RetAddr           Call Site
00 ffffd001`7d53d918 fffff801`61ba2b4c nt!KeBugCheckEx [d:\th\minkernel\ntos\ke\amd64\procstat.asm @ 122]
01 ffffd001`7d53d920 fffff801`61b8da0e dxgkrnl!TdrBugcheckOnTimeout+0xec [d:\th\windows\core\dxkernel\dxgkrnl\core\dxgtdr.cxx @ 2731]
02 ffffd001`7d53d960 fffff801`61b8dd7f dxgkrnl!ADAPTER_RENDER::Reset+0x15e [d:\th\windows\core\dxkernel\dxgkrnl\core\adapter.cxx @ 19443]
03 ffffd001`7d53d990 fffff801`61ba2385 dxgkrnl!DXGADAPTER::Reset+0x177 [d:\th\windows\core\dxkernel\dxgkrnl\core\adapter.cxx @ 19316]
04 ffffd001`7d53d9e0 fffff801`63c5fba7 dxgkrnl!TdrResetFromTimeout+0x15 [d:\th\windows\core\dxkernel\dxgkrnl\core\dxgtdr.cxx @ 2554]
05 ffffd001`7d53da10 fffff801`63c47e5d dxgmms1!VidSchiRecoverFromTDR+0x11b [d:\th\windows\core\dxkernel\dxgkrnl\dxgmms1\vidsch\vidscher.cxx @ 1055]
06 ffffd001`7d53dbc0 fffff801`aa55c698 dxgmms1!VidSchiWorkerThread+0x8d [d:\th\windows\core\dxkernel\dxgkrnl\dxgmms1\vidsch\vidschi.cxx @ 426]
07 ffffd001`7d53dc00 fffff801`aa5c9306 nt!PspSystemThreadStartup+0x58 [d:\th\minkernel\ntos\ps\psexec.c @ 6845]
08 ffffd001`7d53dc60 00000000`00000000 nt!KxStartSystemThread+0x16 [d:\th\minkernel\ntos\ke\amd64\threadbg.asm @ 80]

Sie können auch einen Haltepunkt im Code festlegen, der zu diesem Stoppcode führt, und versuchen, einen einzelnen Schritt vorwärts in den fehlerhaften Code zu führen, wenn Sie den Stoppcode konsistent reproduzieren können.

Weitere Informationen finden Sie unter Analysieren von Absturzabbilddateien mithilfe von WinDbg.

Wenn Sie nicht in der Lage sind, den Windows-Debugger zu verwenden, um dieses Problem zu beheben, können Sie einige grundlegende Problembehandlungstechniken verwenden.

  • Überprüfen Sie die system log in Ereignisanzeige auf andere Fehlermeldungen, die bei der Identifizierung des Geräts oder Treibers helfen können, das diese Fehlerprüfung verursacht.

  • Wenn in der Fehlerprüfungsmeldung ein Treiber angegeben ist, deaktivieren Sie ihn, oder wenden Sie sich an den Hersteller, um Treiberupdates anzufordern.

  • Stellen Sie sicher, dass alle grafikbezogenen Software wie DirectX und OpenGL auf dem neuesten Stand sind und alle grafikintensiven Anwendungen (z. B. Spiele) vollständig gepatcht sind.

  • Vergewissern Sie sich, dass alle installierten neuen Hardwareversionen mit der installierten Version von Windows kompatibel sind. Informationen zu erforderlicher Hardware finden Sie beispielsweise unter Windows 10 Spezifikationen.

  • Führen Sie das Windows-Speicherdiagnosetool aus, um den Arbeitsspeicher zu testen. Geben Sie im Suchfeld der Systemsteuerung Arbeitsspeicher ein, und wählen Sie dann Speicherprobleme Ihres Computers diagnostizieren aus. Nachdem der Test ausgeführt wurde, verwenden Sie die Ereignisanzeige, um die Ergebnisse im Systemprotokoll anzuzeigen. Suchen Sie nach dem Eintrag MemoryDiagnostics-Results , um die Ergebnisse anzuzeigen.

  • Sie können versuchen, die vom Systemhersteller bereitgestellte Hardwarediagnose auszuführen.

  • Verwenden des abgesicherten Modus

    Erwägen Sie die Verwendung des abgesicherten Modus, um dieses Problem zu isolieren. Die Verwendung des abgesicherten Modus lädt nur die mindestens erforderlichen Treiber und Systemdienste während des Windows-Starts.

    1. Um in den abgesicherten Modus zu wechseln, wechseln Sie in den Einstellungen zu Update und Sicherheit .
    2. Wählen Sie RecoveryAdvanced startup (Erweiterter Start der Wiederherstellung>) aus, um den Wartungsmodus zu starten.
    3. Wählen Sie im resultierenden Menü Problembehandlung bei>erweiterten Optionen>Starteinstellungen>Neu starten aus.
    4. Wählen Sie nach dem Neustart von Windows auf dem Bildschirm Starteinstellungen die Option 4, 5 oder 6 aus, um mit dem abgesicherten Modus zu starten.

    Der abgesicherte Modus kann durch Drücken einer Funktionstaste beim Start verfügbar sein, z. B. F8. Spezifische Startoptionen finden Sie in den Informationen des Herstellers.

Allgemeine Informationen zur Problembehandlung finden Sie unter Bluescreen-Daten.

Hinweise

Informationen zu den Anforderungen, die Hardwaregeräte erfüllen müssen, wenn sie TDR implementieren, finden Sie in der Dokumentation zu Windows Hardware Lab Kit . Beispiel: TDR2 – Standard Two Device Test Graphics.

Weitere Informationen

Bug Check Code Reference (Referenz zu Fehlerüberprüfungscodes)