错误检查 0xEF:CRITICAL_PROCESS_DIED

CRITICAL_PROCESS_DIED 错误检查的值为 0x000000EF。 此检查指示关键系统进程已终止。 如果系统终止,关键进程会强制系统进行错误检查。 当进程状态损坏或破坏时,会进行此检查。 当损坏或破坏发生时,由于这些进程对 Windows 操作至关重要,因此当操作系统完整性存在问题时,会进行系统错误检查。

内置 Windows 关键系统服务包括 csrss.exe、wininit.exe、logonui.exe、smss.exe、services.exe、conhost.exe 和 winlogon.exe。

开发人员还可以创建服务并将其恢复选项设置为重新启动计算机。 有关详细信息,请参阅设置在服务出现故障时执行的恢复操作

重要

本主题是面向程序员的。 如果你是在使用计算机时收到蓝屏错误代码的客户,请参阅蓝屏错误疑难解答

CRITICAL_PROCESS_DIED 参数

参数 说明
1 进程对象
2 如果为 0,则进程已终止。 如果为 1,则线程已终止。
3 Reserved
4 Reserved

解决方法

确定此问题的原因通常需要使用调试器来收集其他信息。 应检查多个转储文件,以查看此停止代码是否具有类似的特征,例如在停止代码出现时运行的代码。

有关详细信息,请参阅使用 Windows 调试器 (WinDbg) 进行崩溃转储分析使用 !analyze 扩展!analyze

在许多情况下,还会在系统错误检查之前创建用户转储。 通常,当用户转储可用时,应首先检查该转储,以找出问题的根本原因。 从内核转储调试用户模式代码存在限制,包括分页/缺失数据。 有关详细信息,请参阅用户模式转储文件

请考虑使用事件日志来查看是否存在导致此停止代码的错误。 如果存在,可以使用这些错误来检查特定的服务或其他要调查的代码。

获取有关相关代码的信息后,在执行此代码之前,在相关代码中设置断点。 从这里,向前单步浏览代码,查看用于控制代码流的关键变量的值。 仔细检查代码的此区域,查找虚假假设或其他错误。

使用错误检查的第二个参数来确定是正在终止的进程还是线程导致了错误检查。

如果是进程,请使用 !process 命令在失败点之前和之后显示有关进程的信息,以查找异常行为。 进程资源管理器实用工具可以收集有关父子关系和正在运行的进程的常规信息。

如果是线程,请考虑使用 !thread 命令显示有关线程的信息。 有关内核模式下线程的信息,请参阅更改上下文

有关线程、进程和 Windows 保护的关键代码(如 wininit 和 csrss)的其他细节的一般信息,请参阅 Pavel Yosifovich、Mark E. Russinovich、David A. Solomon 和 Alex Ionescu 编写的 Windows 内部资料

常规疑难解答技巧

如果无法使用调试器,这些常规故障排除提示可能会有所帮助。

  • 如果最近向系统添加了硬件,请尝试删除或更换该硬件。 也可以与制造商联系,查看是否有可用的修补程序。

  • 如果最近添加了新的设备驱动程序或系统服务,请尝试删除或更新它们。 尝试确定系统中导致新错误检查代码出现的原因。

  • 在事件查看器中检查系统日志以获取其他错误消息,这可能有助于发现导致错误的设备或驱动程序。 有关详细信息,请参阅打开事件查看器。 在系统日志中查找与蓝屏同时出现的严重错误。

  • 请与制造商联系,查看是否有更新的系统 BIOS 或固件。

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

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

  • 运行病毒检测程序。 病毒可以感染为 Windows 格式化的所有类型的硬盘。 由此产生的磁盘损坏可能会生成系统错误检查代码。 确保病毒检测程序检查主启动记录是否存在感染。

  • 使用系统文件检查器工具修复丢失或损坏的系统文件。 系统文件检查器是 Windows 中的一个实用工具,供用户扫描 Windows 系统文件中的损坏情况并恢复损坏的文件。 使用以下命令运行系统文件检查器工具 (SFC.exe)。

    SFC /scannow
    

    有关详细信息,请参阅使用系统文件检查器工具修复丢失或损坏的系统文件

  • 设备管理器中查看是否有任何设备标有感叹号 (!)。 查看驱动程序属性中显示的事件日志,以查找任何故障驱动程序。 请尝试更新相关驱动程序。

另请参阅