必须先通过事件查看器提取BugCheck事件中的BugCheckCode和DriverName,再确认C:\Windows\Minidump\下对应.dmp文件存在并用WinDbg Preview执行!analyze -v分析,以精准定位肇事驱动。

要定位Windows蓝屏的根本原因,必须从错误代码和DMP文件双向入手:先在事件查看器里抓取BugCheck事件中的原始错误码与时间戳,再确认对应.dmp文件存在并用调试工具读出驱动级故障模块。
通过事件查看器提取蓝屏错误代码
事件查看器是唯一能直接告诉你“这次蓝屏具体报什么错”的地方,它不依赖DMP文件是否存在,只要系统没被重装过,日志就还在。
1、按 Win + R 打开运行框,输入 eventvwr.msc 并回车。
2、左侧导航树中依次展开 Windows 日志 → 系统。
3、右侧列表点击“级别”列标题两次,让“关键”事件排到最前面。
4、在关键事件里找“来源”列为 BugCheck 的条目——这是内核亲手写的崩溃报告,不是第三方软件凑数的。
5、双击打开该事件,在“常规”选项卡里记下 BugCheckCode(如 0x0000003B),这个十六进制数就是蓝屏错误代码;在“详细信息”选项卡里拉到底部,看 DriverName 字段,它常指向问题驱动(比如 igdkmd64.sys 就是英特尔核显驱动)。
注意:如果找不到 BugCheck 事件,说明系统可能被设置为“不记录崩溃日志”,或蓝屏后强制快速重启跳过了日志写入阶段。
确认DMP文件是否生成并定位存放位置
DMP文件不是每次蓝屏都一定有,它完全取决于系统是否提前开启了转储功能。没开启,就只有错误代码,没有内存现场。
方法一:检查当前转储设置是否生效
1、按 Win + R,输入 sysdm.cpl 回车,打开系统属性。
2、切换到“高级”选项卡,点击“启动和故障恢复”区域的“设置”按钮。
直播话术巡检系统(Windows版) — 实时语音转写、关键词检测、场景自动切换、告警推送、大屏可视化。支持 Windows VB-Cable 虚拟声卡音频采集,阿里云 ASR 实时识别。一键启动脚本,自动安装环境。
3、确认“写入调试信息”已选为 小内存转储(256 KB) 或更高类型;同时检查“转储文件”路径是否为 %SystemRoot%\Minidump\(即 C:\Windows\Minidump)。
方法二:直接访问Minidump文件夹验证
打开文件资源管理器,在地址栏粘贴 C:\Windows\Minidump 并回车。如果文件夹为空,说明要么没触发转储,要么转储路径被改到了别处——此时不要急着分析,先回头改设置。
【重要前提】 若你启用了“自动重启”,且蓝屏一闪而过,那事件查看器里的 BugCheck 时间戳和 Minidump 中最新 .dmp 文件的修改时间必须高度吻合,才能确定它们属于同一次崩溃。
用WinDbg Preview打开DMP文件查故障驱动
这一步不是为了看懂所有堆栈,而是快速揪出“Probably caused by”那一行指向的模块——它比事件查看器里的 DriverName 更精准,因为它是基于内存调用链反推出来的。
第一步:安装并配置符号路径
去 Microsoft Store 安装 WinDbg Preview(必须是 Preview 版,非 Classic)。首次启动后,进入 Settings → Symbols,在 Symbol paths 栏粘贴:
SRV*C:\Symbols*https://msdl.microsoft.com/download/symbols
第二步:以普通用户身份打开DMP文件
WinDbg Preview → File → Open crash dump → 导航到 C:\Windows\Minidump → 选中一个 Mini 开头的 .dmp 文件 → 打开。
第三步:执行自动分析命令
等底部状态栏显示 “Ready” 后,在命令窗口输入:
!analyze -v 并回车。
结果出来后,直接搜索 FAILURE_BUCKET_ID 和 IMAGE_NAME 这两行。前者是微软内部归类编号(如 AV_windows_storage!StorageUfsDevice::GetDeviceInfo),后者是出问题的驱动文件名(如 nvlddmkm.sys)。如果这两项和事件查看器里看到的 DriverName 不一致,优先信 WinDbg 的结果——因为它读的是内存快照,不是日志缓存。


















