知方号

知方号

Bug 检查 0x116 VIDEO<蓝屏代码video tdr>

Bug 检查 0x116:VIDEO_TDR_FAILURE项目03/01/2024

VIDEO_TDR_FAILURE Bug 检查的值为 0x00000116。 此 Bug 检查表明重置显示驱动程序并从超时恢复的尝试失败。

重要

这篇文章适合程序员阅读。 如果您是在使用计算机时收到蓝屏错误代码的客户,请参阅蓝屏错误疑难解答。

VIDEO_TDR_FAILURE 参数参数说明1指向内部 TDR 恢复上下文的指针(如果可用)。2指向负责的设备驱动程序模块(例如所有者标记)的指针。3上次失败操作的错误代码(如果可用)。4内部上下文相关数据(如果可用)。原因

如果在处理最终用户命令或操作时系统出现完全冻结或挂起,图形中会出现常见的稳定性问题。 通常,GPU 忙于处理密集型图形操作,通常是在游戏过程中。 没有屏幕更新发生,用户假定其系统已冻结。 用户通常等待几秒钟,然后按电源按钮重新启动系统。 Windows 会尝试检测这些有问题的挂起情况,并动态恢复响应式桌面。

检测和恢复过程称为超时检测和恢复 (TDR)。 默认超时值为 2 秒。 在视频卡的 TDR 进程中,操作系统的 GPU 计划程序调用显示微型端口驱动程序的 DxgkDdiResetFromTimeout 函数来重新初始化驱动程序并重置 GPU。

在此过程中,操作系统告知驱动程序不要访问硬件或内存,并提供较短的时间来完成为当前正在运行的线程。 如果线程未在超时内完成,则系统 Bug 检查结果为 0x116 VIDEO_TDR_FAILURE。 有关详细信息,请参阅线程同步和 TDR。

如果短时间内发生多个 TDR 事件,系统还可以使用 VIDEO_TDR_FAILURE 进行 Bug 检查。 默认值为一分钟内超过五个 TDR。

如果恢复过程成功,将显示一条消息来表明“显示驱动程序停止响应并已恢复”。

有关详细信息,请参阅超时检测和恢复 (TDR)、TDR 注册表项和 Windows 8 及更高版本中的 TDR 更改。

解决方法

GPU 向显示器显示图形所需的时间比允许的时间要长。 以下一种或多种原因可能会导致此行为:

您可能需要为显示驱动程序安装最新更新,以便它正确支持 TDR 进程。影响显卡正常运行能力的硬件问题,包括:超频组件,例如主板组件兼容性和设置不正确(尤其是内存配置和计时)系统冷却不足系统电源不足有缺陷的部件(内存模块、主板等)视觉效果或后台运行的程序过多可能会降低电脑的速度,因此显卡无法根据需要做出响应。

!analyze 调试扩展显示有关 bug 检查的信息,并有助于确定根本原因。

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....

还会显示故障模块名称。

MODULE_NAME: nvlddmkmIMAGE_NAME: nvlddmkm.sys

可以使用 lm (List Loaded Modules) 命令显示有关故障驱动程序的信息,包括时间戳。

1: kd> lmvm nvlddmkmBrowse full module liststart end module namefffff801`63ec0000 fffff801`649a7000 nvlddmkm T (no symbols) Loaded symbol image file: nvlddmkm.sys Image path: SystemRootsystem32DRIVERS vlddmkm.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

参数 1 包含指向 TDR_RECOVERY_CONTEXT 的指针。 如 !analyze 输出中所示,如果有关联代码的符号,可以使用 dt 命令来显示此数据。

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:: +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)

参数 2 包含指向负责的设备驱动程序模块(例如所有者标记)的指针。

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

你可能希望使用 k、kb、kc、kd、kp、kP、kv(显示堆栈回溯)命令检查堆栈跟踪。

1: kd> k # Child-SP RetAddr Call Site00 ffffd001`7d53d918 fffff801`61ba2b4c nt!KeBugCheckEx [d: hminkernel toskeamd64procstat.asm @ 122]01 ffffd001`7d53d920 fffff801`61b8da0e dxgkrnl!TdrBugcheckOnTimeout+0xec [d: hwindowscoredxkerneldxgkrnlcoredxgtdr.cxx @ 2731]02 ffffd001`7d53d960 fffff801`61b8dd7f dxgkrnl!ADAPTER_RENDER::Reset+0x15e [d: hwindowscoredxkerneldxgkrnlcoreadapter.cxx @ 19443]03 ffffd001`7d53d990 fffff801`61ba2385 dxgkrnl!DXGADAPTER::Reset+0x177 [d: hwindowscoredxkerneldxgkrnlcoreadapter.cxx @ 19316]04 ffffd001`7d53d9e0 fffff801`63c5fba7 dxgkrnl!TdrResetFromTimeout+0x15 [d: hwindowscoredxkerneldxgkrnlcoredxgtdr.cxx @ 2554]05 ffffd001`7d53da10 fffff801`63c47e5d dxgmms1!VidSchiRecoverFromTDR+0x11b [d: hwindowscoredxkerneldxgkrnldxgmms1vidschvidscher.cxx @ 1055]06 ffffd001`7d53dbc0 fffff801`aa55c698 dxgmms1!VidSchiWorkerThread+0x8d [d: hwindowscoredxkerneldxgkrnldxgmms1vidschvidschi.cxx @ 426]07 ffffd001`7d53dc00 fffff801`aa5c9306 nt!PspSystemThreadStartup+0x58 [d: hminkernel tospspsexec.c @ 6845]08 ffffd001`7d53dc60 00000000`00000000 nt!KxStartSystemThread+0x16 [d: hminkernel toskeamd64 hreadbg.asm @ 80]

如果可以一致地重现停止代码,还可以在导致此停止代码的代码中设置断点,并尝试单步进入错误代码。

有关详细信息,请参阅 使用 WinDbg 分析故障转储文件。

如果您不具备使用 Windows 调试器来解决此问题的能力,则可以使用一些基本的故障排除技术。

在事件查看器中检查系统日志以获取其他错误消息,这可能有助于识别导致此 bug 检查的设备或驱动程序。

如果在 Bug 检查消息中标识了驱动程序,请禁用该驱动程序,或与制造商联系以获取驱动程序更新。

验证所有与图形相关的软件(如 DirectX 和 OpenGL)是否都是最新的,并且所有图形密集型应用程序(如游戏)都已完全修补。

确保安装的任何新硬件都与已安装的 Windows 版本兼容。 例如,可以在 Windows 10 规范中获取所需硬件的相关信息。

运行 Windows 内存诊断工具以测试内存。 在控制面板搜索框中键入内存,然后选择诊断计算机内存问题。运行测试后,使用事件查看器查看系统日志下的结果。 查找“内存诊断结果”条目以查看结果。

你可尝试运行系统制造商提供的硬件诊断。

使用安全模式

请考虑使用安全模式来帮助隔离此问题。 在 Windows 启动过程中,使用安全模式只会加载所需的最低驱动程序和系统服务。

若要进入安全模式,请转到设置中的更新和安全。选择恢复>高级启动以启动进入维护模式。在生成的菜单中,选择故障排除>高级选项>启动设置>重启。Windows 重启进入“启动设置”界面后,选择选项 4、5 或 6 以启动进入安全模式。

在启动时按下功能键(例如 F8)可以进入安全模式。 有关具体的启动选项,请参阅制造商提供的信息。

有关常规故障排除的

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。