外接 RTX 4060(OCuLink 显卡坞)掉链全黑后,把显示器改接到核显输出,画面回来了,但显示模式被锁死在「复制」,改不动;设备管理器里 AMD Radeon 780M Graphics 报 Code 43。本文记录这个现象的观测事实、两个已被证伪的假设、已确认的因果关系,以及一条命令的恢复方法。
🔴 现象
- 外接显卡运行中挂死 → 全屏黑(当时显示输出全在外接卡上,没有回退路径)
- 把显示器改接到核显输出(Type-C / 自带 HDMI)→ 画面恢复,但只能复制模式,模式下拉改不动
- 设备管理器 → 显示适配器 →
AMD Radeon 780M Graphics黄色叹号,属性提示「Windows 已停止这个设备,因为它已经报告了问题。(代码 43)」 - 底层问题码:
CM_PROB_FAILED_POST_START,即DEVPKEY_Device_ProblemCode = 43 - 核显 PCIe 链路本身是好的(
CurrentLinkWidth = 16/CurrentLinkSpeed = 4),驱动包oem310.inf签名有效 —— 不是硬件坏、也不是驱动装错
✅ 已确认的因果关系(3 次观测完全一致)
外接卡「死掉」→ 核显驱动启动失败(Code 43)。与外接卡是否在场、核显是否分到显示器、是否独占显示管线都无关。
| 时刻 | 外接卡 4060 | 核显 780M | 核显当时有显示器吗 |
|---|---|---|---|
| 13:31(外接卡掉链) | 死亡 → CM_PROB_PHANTOM | Code 43 | — |
| 14:22(开机) | 活着、驱动显示 | OK | 有(内屏 + 1 台) |
| 14:33(外接卡又掉链,复现) | 死亡 → CM_PROB_PHANTOM | Code 43 | 有(内屏) |
| 执行恢复命令后 | CM_PROB_PHANTOM | OK | 有 |
关键反证在第 3 行:核显当时明明活着、有显示器、驱动正常,外接卡一死它照样崩成 Code 43。⇒ 核显的 Code 43 是外接卡故障的连带后果,是 Windows 显示子系统在外接卡失联时没能把核显干净地重启起来的结果。
❌ 已证伪的两个假设
| 假设 | 证伪依据 |
|---|---|
| 「显示输出管线独占,一块卡接管另一块必被置 Code 43」 | 14:22 开机时两块卡同时都在驱动各自的显示器(HKM2700→外接卡、LEN62ED→外接卡、LEN62ED→核显、JDI0031→核显),两块都 OK ⇒ 不存在独占 |
| 「核显 Code 43 与它有没有分到显示器相关」 | 14:33 外接卡掉链时核显正持有内屏,依旧变成 Code 43 ⇒ 与是否分到显示器无关 |
教训:前两个假设都是只抓到单一场景的反相关就下的结论。现在的结论建立在三次一致观测 + 一次直接反证上。
🔴 顺带的连锁反应(为什么会全黑)
外接卡死掉时,桌面合成器也跟着死,这是「全黑」的直接原因:
| 证据 | 内容 |
|---|---|
Dwminit(Application 日志) | The Desktop Window Manager process has exited. (Process exit code: 0xe0464645, Restart count: 8, Primary display device ID: NVIDIA GeForce RTX 4060) |
Application Error (Id 1000) | 崩溃进程 = dwm.exe,异常码 0xe0464645,Faulting module: unknown / offset 0(不是访问违规,是被系统终结) |
Win32k (Id 263) | A pointer device has no information about the monitor it is attached to. —— 死亡后 3 秒开始刷屏(实测:死亡 14:33:44.485,第一条 263 在 14:33:47.552);开机基线只有 Id=267,出现 263 就代表显示器关联断了。它是后果不是原因,但可作为「刚掉链」的可靠标记 |
dwm.exe 在 40 秒内连崩 8 次(每 5.5 秒一次,13:31:09→:47 / 14:33 同步)—— DWM 的主显示设备就是那块死掉的外接卡,它只能不断重启、每次都失败。
🔧 恢复方法(3 次实战验证有效)
前提:外接卡已经不在场上(拔掉或已掉出总线)。此时重启核显设备即可干净恢复。这个恢复方法与根因解释无关,无论机制怎么变它都有效。
方法一:命令行(一条命令)
pnputil /restart-device "PCI\VEN_1002&DEV_15BF&SUBSYS_01241002&REV_C9\4&98C338A&0&0041"pnputil /restart-device 是微软 PnP 工具的通用设备操作(不是显卡专属),作用是让 PnP 停掉再重启该设备的驱动栈,等价于设备管理器的「禁用设备 → 启用设备」一步完成。用 pnputil /? 可以看到同族的 /disable-device、/enable-device、/remove-device、/scan-devices。
方法二:设备管理器(等效操作)
- 设备管理器 → 显示适配器
- 右键
AMD Radeon 780M Graphics→ 禁用设备(确认提示) - 再右键 → 启用设备
实测恢复结果(取最后一次)
| 指标 | 恢复前 | 恢复后 |
|---|---|---|
| 设备状态 | Error / CM_PROB_FAILED_POST_START | OK / CM_PROB_NONE |
| ProblemCode | 43 | 0 |
| 驱动 | 未加载(跑在基本显示驱动上) | oem310.inf / 32.0.31041.3013 |
| 分辨率 | 读不到 | 2560×1440 @ 60Hz |
| 显示器父节点 | ROOT\BasicDisplay\0000 | LEN62ED / HKM2700 均→ 核显 |
| 新增错误事件 | — | 无(干净重启,无 456/457) |
⚠️ 注意事项
- 必须等外接卡不在场。外接卡在场时不要動核显。
- 不要对已经处于异常状态的故障卡用这条命令。实测教训:对已经 Code 43 的 RTX 4060 执行
/restart-device,结果是Code 43→Code 31 (CM_PROB_FAILED_ADD)→ 硬件重扫后变成CM_PROB_PHANTOM(直接掉出总线)。对「本身还有问题的卡」用它会把它从「在总线上」推到「掉总线」。 - 对核显用是安全的:最坏情况是画面继续留在基本显示驱动,不会比现状更差(它本来已经是 Code 43)。
- 执行时显示栈会重建,屏幕可能闪一下,属正常。
- 需要管理员权限。
❌ 已排除的其他误解
| 猜测 | 实测结论 |
|---|---|
| 「显卡 43 补丁失效了」 | 否。驱动包 nv_dispsi.inf 与 NV_DISP.CAT 签名都是 Valid,签发者 CN=Microsoft Windows Hardware Compatibility Publisher;驱动版本未变;且外接卡的故障形态是「卡从总线消失」,不是补丁能管的「驱动拒绝认卡」。核显这边完全无关。 |
| 「是关掉 ReBAR 把核显搞坏了」 | 未能证实。关 ReBAR 反而让外接卡首次成功启动(此前每次开机都报微端口启动失败 0xC000009A)。核显在多次普通重启后均能恢复 OK。 |
| 「AMD 驱动坏了 / 装错了」 | 否。oem310.inf 签名 Valid(Microsoft WHCP),核显 PCIe 链路 x16 Gen4 正常。重启设备即刻恢复,说明驱动栈本身是好的。 |
| 「核显硬件坏了」 | 否。一条 restart-device 就恢复,硬件无异常。 |
📌 尚未定论
- 为什么外接卡一死,核显的驱动就启动失败(而不是干净接管)—— 机制层面仍不清楚,只知道这个因果 3 次一致。
- 因此「把主显示器接到核显以避坑」这个方案尚未验证是否有效:14:33 那次核显本来就有显示器、也是活的,外接卡一死它照样崩。不要盲目依赖这个缓解手段。
- 下次复现时的做法:记下开机后
Get-PnpDevice -Class Monitor里每台显示器的父节点(归属哪块卡),再对比核显 ProblemCode。
🔗 关联(另一个独立问题)
核显 Code 43 是后果;真正需要解决的是外接卡本身的问题 ——「运行中 GPU 引擎瞬间失联」。两者的证据不在同一个地方,不要混淆:
| 核显 Code 43(本文) | 外接卡黑屏(另一个问题) | |
|---|---|---|
| 性质 | 外接卡死亡引发的连带后果 | 显卡引擎无前兆瞬间失联 |
| 证据位置 | Monitor 父节点 + 设备 ProblemCode + Dwminit / Win32k 263 | C:\Windows\LiveKernelReports\WATCHDOG\*.dmp(dump 头 bugcheck:0x141 VIDEO_ENGINE_TIMEOUT_DETECTED / 0x117 VIDEO_TDR_TIMEOUT_DETECTED)+ nvidia-smi 的 GPU is lost + DEVPKEY_Device_LastRemovalDate |
| 能否软件恢复 | 能,一条 restart-device | 不能,卡已掉出总线(CM_PROB_PHANTOM),硬件重扫也扫不回来,必须断电重插 / 换机验证 |
补充:Minidump 为空不代表没记录。显卡挂死不产生 bugcheck dump,证据在 LiveKernelReports 的 WATCHDOG 转储里(需要管理员权限才能读)。