- 識別所涉及的驅動程式(nvlddmkm.sys、igdkmd64.sys、atikmdag.sys)並檢查 TDR 事件。
- 如果您使用專業應用程序,請優先安裝乾淨的驅動程式並嘗試 Studio/stable 版本。
- 控制熱量和功率;防止在高負載下進行 iGPU/dGPU 切換。
- 使用 SFC/Startup Repair,並且僅在適當的情況下仔細調整 TdrDelay。
當你的電腦在執行任務時崩潰,並出現可怕的藍屏 視訊_TDR_失敗,你很可能會認為所有東西都突然壞了;實際上,系統在崩潰後嘗試恢復 GPU,但失敗了。此停止程式碼 它與圖形驅動程式以及超時、檢測和恢復 (TDR) 機制密切相關。,因此了解其工作原理是解決問題的一半。
下文將提供一份完整的指南,將官方技術說明與實際操作步驟和技巧結合。目標是讓您能夠 診斷、修正和預防此錯誤 無論您是高級 WinDbg 用戶還是更喜歡 Windows 的簡單步驟。
VIDEO_TDR_FAILURE (0x00000116) 是什麼以及為什麼會出現?
VIDEO_TDR_FAILURE 錯誤對應於 錯誤偵測 0x00000116 並表示 Windows 嘗試在逾時後重置視訊驅動程式和 GPU,但未成功。 Windows 圖形子系統使用 TDR 監控 GPU:如果 GPU 卡住且無回應,它會嘗試重新啟動驅動程式以恢復桌面。
此TDR機制有一個大約2秒鐘的預設計時器:如果圖形任務沒有及時完成或驅動程式重新啟動未完成,則會觸發錯誤檢查。
恢復過程成功後,您將看到訊息「顯示驅動程式停止回應並已恢復」。 當無法恢復時,系統停止執行並顯示藍屏,並顯示VIDEO_TDR_FAILURE.
錯誤檢查參數及其解釋方法
除了 0x116 程式碼之外,藍色畫面和記憶體轉儲還包括四個參數,有助於除錯 VIDEO_TDR_FAILURE 錯誤的確切來源。 了解每個參數的含義有助於診斷並加快解決問題。:
| 參數 | 描述 |
|---|---|
| 1 | 指向內部 TDR 復原上下文 (TDR_RECOVERY_CONTEXT) 的指標(如果存在)。 |
| 2 | 負責的驅動程式模組內的位址(用於識別所涉及的驅動程式)。 |
| 3 | 上次失敗操作的 NTSTATUS 代碼(如果可用)。 |
| 4 | 上下文相關的內部數據,在特定場景下可用。 |
在實際追蹤中,通常會涉及圖形驅動程式的 .sys 檔案:例如, nvlddmkm.sys(NVIDIA)、igdkmd64.sys(英特爾)或 atikmdag.sys/atikmpag.sys(AMD/ATI)。 這個線索是關鍵:它指向導致崩潰的提供者和驅動程式路徑。.
發生原因:現實世界中的典型原因
最常見的情況是,GPU 在高負載(遊戲、CAD、解碼或渲染)下長時間處於忙碌狀態,無法及時回應。因此, 最常見的誘因是:
- 過時或故障的驅動程式:
- 整合 GPU 和專用 GPU 之間的衝突。
- 過熱
除了軟體之外,硬體在 VIDEO_TDR_FAILURE 錯誤中也起著一定的作用:記憶體模組定時過長、主機板超頻、電源/功率不足、VRAM/GPU 效能下降或小型筆記型電腦的散熱不良。 如果設備運作時溫度或功率非常低,TDR 會更早、更頻繁地跳動。.
還有環境因素: 太多後台進程爭奪資源, 最近的更新安裝不正確或圖形軟體套件(DirectX、OpenGL、Vulkan)已過期。後台負載高且圖形組件未對齊的系統極易出現此錯誤檢查。

使用 WinDbg 和日誌進行診斷:如何識別罪魁禍首
如果你處理記憶體轉儲(小型轉儲), WinDbg的 將允許您確認負責的驅動程式和 VIDEO_TDR_FAILURE 錯誤的直接原因。 頭命令是 !analyze -v,它產生錯誤檢查摘要、涉及的模組和最新的 NTSTATUS.
kd> !analyze -v
VIDEO_TDR_FAILURE (116)
Attempt to reset the display driver and recover from timeout failed.
Arguments:
Arg1: <puntero TDR_RECOVERY_CONTEXT>
Arg2: <dirección en el módulo responsable>
Arg3: <código NTSTATUS último>
Arg4: <datos de contexto>
從參數 2 開始,您可以使用 lmvm 列出模組並檢查時間戳記、路徑和大小。 如果出現 nvlddmkm.sys 或同等文件,則您已經有主要嫌疑人了。.
kd> lmvm nvlddmkm
start end module name
... nvlddmkm.sys
Image path: \SystemRoot\system32\DRIVERS\nvlddmkm.sys
Timestamp: <fecha>
使用參數 1(存在時)可以檢查 TDR_RECOVERY_CONTEXT 並查看導致適配器重新啟動的逾時原因。 這有助於區分簡單的管道掛起和重複的重置失敗。.
kd> dt dxgkrnl!_TDR_RECOVERY_CONTEXT <puntero>
+0x010 TimeoutReason : TdrEngineTimeoutPromotedToAdapterReset
...
最後,帶有 k/kb/kp 的堆疊追蹤顯示程式碼路徑最終以 KeBugCheckEx 結束,其中 dxgkrnl 和 dxgmms1 函數是 TDR 流程的典型特徵。 TdrResetFromTimeout 的「乾淨」堆疊確認這是一個真正的 TDR,而不是一般的核心問題.
kd> k
# Child-SP RetAddr Call Site
00 ... nt!KeBugCheckEx
01 ... dxgkrnl!TdrBugcheckOnTimeout
02 ... dxgkrnl!ADAPTER_RENDER::Reset
03 ... dxgkrnl!DXGADAPTER::Reset
04 ... dxgkrnl!TdrResetFromTimeout
05 ... dxgmms1!VidSchiRecoverFromTDR
...
解決步驟:從基礎到進階
在開啟登錄編輯程式或執行偵錯器之前,請先專注於具有最佳努力/影響比的指標。 從驅動程式開始,然後繼續清理/重新安裝,如果仍然如此,則進行進階調整和硬體驗證。.
1)正確更新顯示卡驅動和晶片組
顯示卡驅動程式過時或有問題是導致 TDR 的最常見原因。前往“裝置管理員”,展開“顯示轉接器”,右鍵點選您的 GPU,然後選擇“更新驅動程式”。 更好的是:從 NVIDIA/Intel/AMD 官方網站下載適合您型號的建議版本。.
如果您將 NVIDIA 與專業軟體(CAD、編輯、3D)一起使用,請嘗試使用 Studio 驅動程式而不是 Game Ready 驅動程式。 在配備 Intel iGPU + NVIDIA dGPU 的筆記型電腦上,還需安裝電腦製造商提供的最新 Intel 軟體包和晶片組.
2)乾淨驅動程式重新安裝(DDU)
如果「非處方」更新不夠用,最好清理先前驅動程式的殘留。顯示驅動程式卸載程式 (DDU) 工具可以刪除驅動程式元件、服務和登錄機碼。 建議在安全模式下運行,然後安裝新下載的驅動程式。.
典型順序:安全模式、DDU「清理並重新啟動」、正常啟動 Windows,然後安裝從製造商網站下載的驅動程式。 此過程可避免標準安裝程式無法解決的版本衝突和損壞檔案。.
3)嘗試以前的穩定版本
有時,最新版本會引入迴歸問題。在這種情況下,請使用「舊版驅動程式」(如有)或手動安裝先前的穩定版本。 使用 NVIDIA GPU,當回溯到先前的 Studio 驅動程式時,CAD 中的許多 TDR 問題都會消失。.
對於手動安裝,請使用“瀏覽我的電腦以查找驅動程式軟體”和“讓我從可用驅動程式列表中選擇”,選擇適合您 GPU 的先前版本。 完成後重新啟動以驗證更改.
4)使用SFC修復系統文件
如果問題發生在更新或安裝失敗後,請執行系統檔案檢查器。以管理員身份開啟 CMD 並執行 sfc /scannow。 Windows 將檢查受保護的二進位檔案並自動替換損壞的二進位檔案。.
sfc /scannow
完成後,重新啟動並再次嘗試通常的圖形加載,看看 TDR 是否消失。 如果 SFC 修復文件,則表示系統損壞影響了圖形堆疊。.
5)Windows啟動修復
如果登入後或開啟相同的應用程式時反覆出現 TDR,請前往設定>更新和安全性>復原>進階啟動>疑難排解>進階選項>啟動修復來執行啟動修復。 Windows 將嘗試修復未正確載入的服務和啟動元件。.
維修後,請依照引發故障的相同使用模式對設備進行測試。 如果停止播放,則可能是部分啟動問題或依賴項損壞.
6)安全模式和驅動程式重新安裝
安全模式會載入精簡驅動程序,並允許不間斷地卸載/重新安裝。在 msconfig 中選擇“安全啟動”,或從“進階啟動”訪問,然後在“裝置管理員”中卸載適配器。 然後安裝從製造商下載的新驅動程式.
在具有兩個 GPU 的電腦上,分別卸載並重新安裝它們:首先是整合的(Intel),然後是專用的(NVIDIA/AMD)。 這可以防止 Windows 在其間重新註入不適當的泛型。.
7)特定驅動檔修復(AMD/NVIDIA)
在 AMD/ATI GPU 上,有時會重新產生 atikmdag.sys 或 atikmpag.sys 可以解決問題。重新命名 C:\Windows\System32\drivers 文件,方法是添加 .old 後綴,並從製造商的軟體包中解壓縮。 擴充命令會建立新的 .sys 文件,然後將其複製到驅動程式資料夾。.
expand.exe atikmdag.sy_ atikmdag.sys
expand -r atikmdag.sy_ atikmdag.sys
對於 NVIDIA,該想法類似於 nvlddmkm.sys:卸載後,將 nvlddmkm.sys 重新命名為 .old,展開 NVLDDMKM.Sy_ 並將生成的 .sys 複製到 System32\DRIVERS。 此替換刪除了表面安裝後仍存在的損壞文件.
Expand.exe NVLDDMKM.Sy_ NVLDDMKM.Sys
8)如果有衝突,請暫時停用英特爾 iGPU
如果您使用專用 GPU 作為主要 GPU(例如 NVIDIA),請在裝置管理員中停用 Intel HD/UHD 以排除切換問題。 在某些筆記型電腦上,在 iGPU/dGPU 之間移動應用程式時,自動切換會觸發 TDR.
更加精緻:在 NVIDIA 控制面板中,將特定的 dGPU 分配給要求苛刻的應用程式(acad.exe、遊戲),並將其餘部分保留為自動。 這樣,您可以最大限度地減少開啟/關閉視窗時適配器的更改,並避免圖形上下文重置。.
9)檢查硬體和散熱
使用可靠的工具檢查溫度:如果 GPU 超出閾值和節流,就會出現 TDR。清除灰塵,必要時更換導熱矽脂,並確保良好的通風。 對於筆記型電腦來說,長時間使用時,散熱墊可以起到很大的作用。.
無需超頻即可驗證 RAM(Windows 記憶體診斷工具)和系統穩定性。過高的記憶體設定或電壓限制會導致顯示卡負載不穩定。 CPU/RAM/VRM 的穩定性與 GPU 本身同等重要。.
10)進階TDR設定(謹慎使用)
對於需要更長時間運行的繁重工作負載,提高 TdrDelay 值可能會有所幫助。路徑:HKLM\System\CurrentControlSet\Control\GraphicsDrivers。建立/設定 32 位元 DWORD TdrDelay 值為 8-10,然後重新啟動。 這並不能解決糟糕的驅動程式問題,但它在宣布超時之前提供了更多的餘地。.
只有當您已經更新/清理驅動程式並檢查了熱量後才使用它;如果問題出在驅動程式上,延長時間只會推遲 BSOD。 如果增加 TdrDelay 後崩潰仍然存在,請返回 2 並修復根源.
在考慮問題解決之前的快速檢查清單
為確保您已解決 VIDEO_TDR_FAILURE 問題,您需要執行以下檢查:
- 驗證在具有正常負載的長時間會話期間,重複的 TDR 事件不再出現在事件檢視器中。 如果在現實條件下花費 30 至 60 分鐘不進行 TDR,則修復效果是十分穩健的。.
- 透過監測溫度運行中等壓力測試(圖形基準或應用中的複雜場景)。 穩定的顯示卡可以維持穩定的時脈頻率,而不會節流或觸發錯誤。.
- 複製已知良好的驅動程式(並記下版本),以便在將來的更新再次引入問題時可以快速回滾。 當需要再次更新時,預防可以節省大量時間。.
儘管 VIDEO_TDR_FAILURE 錯誤很可怕,但通常可以透過應用順序和方法來修復:正確的驅動程式、乾淨的安裝、控制熱量,以及在必要時微調 TDR。 透過這種組合,創意任務、遊戲和 CAD 可以再次運行而不會崩潰。.
專門研究技術和互聯網問題的編輯,在不同數位媒體領域擁有十多年的經驗。我曾在電子商務、通訊、線上行銷和廣告公司擔任編輯和內容創作者。我還在經濟、金融和其他領域的網站上撰寫過文章。我的工作也是我的熱情所在。現在,透過我的文章 Tecnobits,我嘗試探索科技世界每天為我們提供的所有新聞和新機會,以改善我們的生活。

