</nav>
讯享网
适用于: 受支持的 Windows Server 和 Windows 客户端版本
当 Windows 遇到危及系统安全运行的情况时,系统将停止。 示例包括可能危及安全性或导致操作系统(OS)和/或用户数据损坏的故障。 当计算机停止以防止操作系统在这些条件下继续运行时,它称为 Bug 检查(或 Bugcheck)。 它通常也称为系统崩溃、内核错误、蓝屏、蓝屏死机 (BSOD) 或停止错误。 在 Windows 预览版上,屏幕颜色可以是绿色,从而导致绿屏死机 (GSOD)。
对于停止错误的原因没有简单的解释。 可以涉及许多不同的因素。 我们对崩溃根本原因的分析表明:
70% 是由第三方驱动程序代码引起的。
10% 是由硬件问题引起的。
5% 是由 Microsoft 代码引起的。
15% 的原因未知,因为内存损坏太多,无法分析。
要对停止错误消息进行疑难解答,请按照以下常规步骤进行操作:
查看在事件日志中找到的停止错误代码。 联机搜索特定的停止错误代码,查看是否存在针对此问题的任何已知问题、解决方法或绕过方法。
请确保安装最新的 Windows 更新、累积更新和汇总更新。 要验证更新状态,请参阅系统的相应更新历史记录。 例如:
Windows 10 版本 21H2
Windows 10 Version 21H1
Windows 10 Version 20H2
请确保 BIOS 和固件是最新版本。
运行任何相关的硬件和内存测试。
运行 Microsoft 安全扫描程序,或者运行检查 MBR 是否感染的任何其他病毒检测程序。
确保硬盘上有足够的可用空间。 确切的要求各不相同,但我们建议 10-15% 的可用磁盘空间。
在以下情况下,请与相应的硬件或软件供应商联系来更新驱动程序和应用程序:
错误消息指示特定驱动程序导致了该问题。
你看到的是,崩溃发生前有指示显示正启动或停止的某项服务。 在这种情况下,请确定服务行为在所有崩溃实例中是否一致。
你进行了任何软件或硬件更改。
要为内存转储文件配置系统,请执行以下步骤:
选择“任务栏”搜索框,键入“高级系统设置” ,然后按 Enter 。
在“系统属性” 框的“高级” 选项卡上,选择“启动和恢复” 部分中显示的“设置” 按钮。
在新窗口中,选择选项“写入调试信息” 下方的下拉列表。
选择“自动内存转储” 。
选择“确定” 。
重启计算机,设置才能生效。
如果服务器已虚拟化,请在创建内存转储文件后禁用自动重新启动。 通过此禁用,你可以拍摄服务器处于当前状态以及问题再次出现时的快照。
内存转储文件保存在以下位置:
转储文件类型 位置 (none) %SystemRoot%MEMORY.DMP
(非活动或灰显) 小型内存转储文件 (256 KB) %SystemRoot%Minidump
内核内存转储文件 %SystemRoot%MEMORY.DMP
完整内存转储文件 %SystemRoot%MEMORY.DMP
自动内存转储文件 %SystemRoot%MEMORY.DMP
活动内存转储文件 %SystemRoot%MEMORY.DMP
可以使用 Microsoft Crash Dump File Checker (DumpChk) 工具来验证内存转储文件是否已损坏或无效。 有关详细信息,请观看以下视频:
有关如何使用 Dumpchk.exe 检查转储文件的详细信息,请参阅以下文章:
有关 pagefile 设置的更多信息,请参阅以下文章:
页面文件简介
如何确定 64 位版本 Windows 的合适页面文件大小
生成内核或完整的故障转储
查找崩溃的根本原因可能并不容易。 硬件问题尤其难以诊断,因为它们可能会导致不稳定和不可预知的行为,这些行为可能表现为各种症状。
发生停止错误时,应首先隔离有问题的组件,然后尝试引导它们再次触发停止错误。 如果可以重现问题,通常可以确定原因。
可以使用 Windows 软件开发工具包 (SDK) 和符号等工具来诊断转储日志。 下一部分讨论如何使用此工具。
高级 Windows 调试,第一版书籍
Windows 调试工具(WinDbg、KD、CDB、NTSD)
验证计算机是否已设置为在发生崩溃时生成完整的内存转储文件。 有关详细信息,请参阅方法 1:内存转储。
在崩溃计算机的 Windows 目录中找到 memory.dmp 文件,然后将该文件复制到另一台计算机。
在另一台计算机上,下载 Windows 10 SDK。
开始安装并选择“调试 Windows 工具” 。 已安装 WinDbg 工具。
转到“文件” 菜单,选择“符号文件路径” 以打开 WinDbg 工具并设置符号路径。
如果计算机已连接到 Internet,请输入 Microsoft 公共符号服务器:,然后选择“确定” 。 建议使用此方法。
如果计算机未连接到 Internet,请指定本地符号路径。
选择“打开故障转储” ,然后打开复制的 memory.dmp 文件。 讯享网
在“Bug 检查分析” 下,选择“ ”。 在页面底部的提示符中输入 命令。
将显示详细的 Bug 检查分析。
向下滚动到“STACK_TEXT” 部分。 此时将出现一行数字,每行后跟一个冒号和一些文本。 该文本应解答 DLL 导致崩溃的原因。 如果适用,它还会显示是哪个服务导致 DLL 崩溃。
有关如何解释 STACK_TEXT 输出的详细信息,请参阅使用 !analyze 扩展。
存在许多可能导致 Bug 检查的原因,每个情况都是唯一的。 在上面提供的示例中,可从 STACK_TEXT 识别的重要行为 20、21 和 22:
讯享网
此问题是由 Windows 防火墙的组件 mpssvc 服务造成的。 通过暂时禁用防火墙,然后重置防火墙策略,解决了该问题。
有关更多示例,请参阅调试示例。
以下视频演示用于分析转储文件的各种疑难解答方法。
分析转储文件
安装适用于 Windows(x64 和 x86)的调试工具
调试内核模式故障内存转储
特殊池
我们估计,大约 75% 的所有停止错误是由有故障的驱动程序引起的。 驱动程序验证程序工具提供多种方法来帮助进行疑难解答。 其中包括在隔离内存池中运行驱动程序(不与其他组件共享内存)、生成极端内存压力和验证参数。 如果工具在执行驱动程序代码时遇到错误,它会主动创建异常。 然后,它可以进一步检查该部分代码。
使用驱动程序验证程序时,请使用以下准则:
测试任何“可疑”驱动程序。 例如,最近更新的驱动程序或已知有问题的驱动程序。
如果继续遇到不可分析的崩溃,请尝试对所有第三方和未签名的驱动程序启用验证。
对 10-20 个驱动程序组启用并发验证。
此外,如果计算机由于驱动程序验证程序而无法启动到桌面,可以通过在安全模式下启动来禁用该工具。 此解决方案是因为该工具无法在安全模式下运行。
有关详细信息,请参阅驱动程序验证程序。
本部分不包含所有错误代码的列表,但由于许多错误代码都有相同的潜在解决方法,因此最好按照以下步骤对错误进行疑难解答。 有关停止错误代码的完整列表,请参阅 Bug 检查代码参考。
以下部分列出了对常见停止错误代码的常规疑难解答过程。
停止错误代码 0x00000141 或 0x00000117
请联系列出的显示驱动程序的供应商,获取该驱动程序的相应更新。
停止错误代码 0x0000000D1
通过 Microsoft 更新目录网站为系统应用最新累积更新,进而对驱动程序应用最新更新。 更新过时的网络驱动程序。 虚拟化 VMware 系统通常运行“Intel(R) PRO/1000 MT 网络连接”(e1g6032e.sys)。 可以从 Intel 下载驱动程序和软件网站下载此驱动程序。 请联系硬件供应商更新网络驱动程序以获取解决方案。 对于 VMware 系统,请使用 VMware 集成网络驱动程序,而不是 Intel 的e1g6032e.sys。 例如,使用 VMware 类型 VMXNET、VMXNET2 或 VMXNET3。
停止错误代码 0x000000050
如果在停止错误消息中标识了驱动程序,请与制造商联系以获取更新。 如果没有可用更新,请禁用驱动程序,并监视系统是否稳定。 运行 以检测和修复磁盘错误。 在系统分区上开始磁盘扫描之前重启系统。 请联系制造商,获取他们可能为硬盘子系统提供的任何诊断工具。 尝试重新安装最近安装或更新的任何应用程序或服务。 系统在启动应用程序并读取注册表以获取首选项设置时,可能会触发崩溃。 重新安装应用程序可以修复损坏的注册表项。 如果问题仍然存在,并且已运行最近的系统状态备份,请尝试从备份还原注册表配置单元。
停止错误代码 c000021a {致命系统错误} Windows SubSystem 系统进程意外终止,状态为 0xc0000005。 系统已关闭。
使用系统文件检查器工具修复丢失或损坏的系统文件。 系统文件检查器允许用户扫描 Windows 系统文件中的损坏情况并还原损坏的文件。 有关详细信息,请参阅使用系统文件检查器工具。
停止错误代码 0x000000024
硬盘上的 NTFS 文件系统损坏或坏块(扇区)通常会引发此停止错误。 损坏的硬盘驱动程序(SATA 或 IDE)也会对系统读取和写入磁盘的能力产生不利影响。 运行存储子系统制造商提供的任何硬件诊断。 使用扫描磁盘工具确认没有文件系统错误。 要执行此步骤,请右键单击要扫描的驱动器,选择“属性”,选择“工具”,然后选择“立即检查”按钮。 更新 NTFS 文件系统驱动程序 (Ntfs.sys)。 为遇到问题的当前操作系统应用最新的累积更新。
停止错误代码 0x0000001E
如果在停止错误消息中标识了驱动程序,请禁用或删除该驱动程序。 禁用或删除最近添加的所有驱动程序或服务。
如果在启动序列过程中出现错误,并且使用 NTFS 文件系统格式化系统分区,那么你可能能够使用安全模式在设备管理器中禁用该驱动程序。 要禁用驱动程序,请按照下列步骤操作:
转到“设置”>“更新与安全”>“恢复” 。
在“高级启动”下,选择“立即重启” 。
在电脑重启显示“选择选项”屏幕后,选择“故障排除”>“高级选项”>“启动设置”>“重启” 。
计算机重启后,将显示选项列表。 按 4 或 F4 在安全模式下启动计算机。 如果你想要在安全模式下使用 Internet,请按 5 或 F5 选择“网络安全模式” 选项。
停止错误代码 0x00000133
在某些情况下,此停止代码是由故障驱动程序导致的,该驱动程序未在分配的时间范围内完成其工作。 为了帮助缓解此错误,请从系统收集内存转储文件,然后使用 Windows 调试器查找故障驱动程序。 如果在停止错误消息中标识了某个驱动程序,请禁用该驱动程序以隔离问题。 请与制造商联系以获取驱动程序更新。 在事件查看器中检查系统日志以获取其他错误消息,这可能有助于识别导致出现错误代码 0x133 的设备或驱动程序。 验证安装的任何新硬件是否与安装的 Windows 版本兼容。 例如,可以在 Windows 10 规范中获取所需硬件的相关信息。 如果安装了 Windows 调试器,并且你有权访问公共符号,则可以将 c:windowsmemory.dmp 文件加载到调试器中。 然后,请参阅“确定 Windows Server 2012 上错误检查 0x133 (DPC_WATCHDOG_VIOLATION) 错误的来源”,从内存转储中查找出现问题的驱动程序。
停止错误代码 0x0000009E
此停止错误表明用户模式运行状况检查失败,从而阻止了正常关闭。 Windows 通过重启或支持应用程序故障转移到其他服务器来恢复关键服务。 群集服务包含检测机制,可在用户模式组件中检测无响应情况。
此停止错误通常发生在群集环境中,指示故障驱动程序是 RHS.exe。 检查事件日志中是否存在任何存储故障,以找出失败的进程。 尝试更新事件日志中指示的组件或进程。 你应该会看到记录的以下事件:
事件 ID:4870
源:Microsoft-Windows-FailoverClustering
描述:用户模式运行状况监视检测到系统没有响应。 故障转移群集虚拟适配器与进程 ID 为“%1”的群集服务器进程失去联系,持续“%2”秒。 将执行恢复操作。 查看群集日志以识别进程并调查哪些项可能导致进程挂起。
有关详细信息,请参阅“基于 Windows Server 的多节点故障转移群集环境中群集节点上的“0x0000009E”停止错误”。另请参阅以下 Microsoft 视频“如果发生 9E 怎么办”。
此错误检查是由驱动程序在升级期间挂起引起的,导致 NDIS.sys 中出现错误检查 D1,这是一个 Microsoft 驱动程序。 IMAGE_NAME 会告诉你存在故障的驱动程序,但由于此驱动程序是 Microsoft 驱动程序,因此无法替换或删除。 解决方法是在设备管理器中禁用网络设备,然后再次尝试升级。
在此示例中,非 Microsoft 驱动程序导致页面错误,因此我们没有此驱动程序的符号。 但是,查看 IMAGE_NAME 或 MODULE_NAME 表明是 WwanUsbMP.sys 导致了此问题。 断开设备连接并重试升级是一种可能的解决方案。
讯享网
错误检查代码参考
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/179615.html