如何排查 Windows XP 或 Windows Server 2003 中的 STOP 0xC000021A 错误
本文介绍 STOP 0xC000021A 错误的高级故障排除步骤。
家庭用户:本文适用于支持代理和 IT 专业人员。 如果要获得有关在使用计算机时蓝屏错误代码的详细信息,请参阅故障排除蓝屏错误。
适用于:Windows 10 - 所有版本,Windows Server 2012 R2
原始 KB 编号: 156669
本文适用于高级计算机用户。 如果你对高级故障排除不了解,可以寻求他人的帮助或与支持部门联系。
使用运行“适用于”部分中列出的操作系统之一的服务器或工作站时,可能会收到以下错误消息:
STOP: c000021a {Fatal System Error}
Windows 登录进程系统进程意外终止,状态为 0xc0000034 (0x00000000 0x0000000)
系统已关闭。
注意
括号中的参数特定于计算机配置,每种情况可能有所不同。
原因
当 Winlogon.exe 或 Csrss.exe 失败时,将出现 STOP 0xC000021A 错误。 当 Windows NT 内核检测到其中任一进程已停止时,它会停止系统并引发 STOP 0xC000021A 错误。 此错误可能有多种原因,包括:
- 已安装不匹配的系统文件。
- Service pack 安装失败。
- 用于还原硬盘的备份程序未正确还原可能正在使用的文件。
- 已安装不兼容的第三方程序。
解决方案
若要排查此问题,必须确定其中哪一个进程失败以及其原因。
若要确定哪个进程失败,请将 Dr. Watson 注册为默认系统调试器(如果它不是默认调试器的话)。 Dr. Watson for Windows NT 会将有关进程故障的诊断信息记录到日志文件 Drwtsn32.log。 此外,还可以将此程序配置为生成故障进程的内存转储文件。 然后,可以分析调试器中的文件,以确定进程失败的原因。
若要将 Dr. Watson 设置为捕获用户模式程序错误,请执行以下步骤:
在命令提示符处键入“System Root\System32\Drwtsn32.exe -I”,然后按 Enter 键。
此命令会将 Dr. Watson 配置为默认系统调试器。
在命令提示符下,键入“System Root\System32\Drwtsn32.exe”,然后选择以下选项:
- “附加到现有日志文件”
- “创建故障转储”
- “可视化通知”
计算机从 STOP 0xC000021A 错误重新启动后,运行 Dr. Watson (Drwtsn32.exe)。
查看 Dr. Watson 日志以确定导致问题的用户模式进程。
如果 Dr. Watson 日志中未包含足够的信息来确定问题的原因,请分析 User.dmp 文件以确定 STOP 0xC000021A 错误的原因。
如果 Dr. Watson 未为 Winlogon.exe 或 Csrss.exe 创建 User.dmp 文件,则可能需要使用其他工具生成故障进程的内存转储文件。 有关更多信息,请参阅下面的文章:
241215 如何使用 Userdump.exe 工具创建转储文件
注意
按照知识库文章中的说明对关闭异常的进程进行故障排除。 按照以下说明操作,监视以下进程以排查 STOP 0xC000021A 错误:
- Winlogon.exe
- Csrss.exe
大多数 STOP 0xC000021A 错误的出现是因为 Winlogon.exe 故障。 这通常是由于第三方图形识别和验证 (GINA) DLL 错误而发生的。 GINA 是可替换的 DLL 组件,由 Winlogon.exe 加载。 GINA 实施交互式登录模型的身份验证策略。 GINA 执行所有标识和身份验证用户交互。
某些类型的远程控制软件通常会替换默认的 Windows GINA DLL (Msgina.dll)。 第一步最好是检查系统,看看它是否有第三方 GINA DLL。 为此,请找到以下注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinlogonValue = GinaDLL REG_SZ
- 如果 Gina DLL 值存在,并且不是 Msgina.dll,则可能意味着第三方产品已更改此值。
- 如果此值不存在,系统将 Msgina.dll 用作默认的 GINA DLL。 如果在安装新的或更新的设备驱动程序、系统服务或第三方程序后首次出现此错误,则应删除或禁用新软件。 请联系软件制造商,了解更新是否可用。
上次已知的良好配置
如果本文中前面的步骤无法解决问题,请使用最后一次已知的良好配置启动计算机。 要使用最后一次已知的良好配置启动计算机,请执行以下步骤。
注意
由于 Microsoft Windows 存在多个版本,因此你计算机上的以下步骤可能会有所不同。 如果是这样,请参见您的产品文档来完成这些步骤。
选择“启动”>“关闭”。
选择“重启”>“确定”。
在指定时间按 F8:
- 对于基于 x86 的计算机:当文本屏幕出现,然后消失时,按 F8。 (文本屏幕可能包括内存测试、有关 BIOS 的行和其他行。)也可能出现提示,指示何时按 F8。
- 对于基于 Itanium 体系结构的计算机:从启动菜单进行选择后,按 F8。 可能会出现提示,指示何时按 F8。
使用箭头键选择“上次已知的良好配置”,然后按 Enter。
NUM LOCK 必须关闭,数字键盘上的箭头键才能起作用。
使用箭头键突出显示操作系统,然后按 Enter。
注意
- 选择“上次已知良好配置”启动选项提供一种从问题中恢复的方法,例如新添加的驱动程序可能不适用于硬件。 但是,它无法解决因驱动程序或文件损坏或缺失而导致的问题。
- 选择“上次已知良好配置”选项时,将仅还原注册表项 HKLM\System\CurrentControlSet 中的信息。 在其他注册表项中所做的任何更改仍保留。
使用恢复控制台删除不兼容的软件
如果本文中前面的步骤无法解决问题,请使用恢复控制台删除不兼容的软件。 描述如何执行此操作的完整步骤超出了本文的范围。 但是,可以使用以下文章作为指南:
816104 如何在 Windows Server 2003 中使用恢复控制台替换驱动程序
326215 如何在不启动的基于 Windows Server 2003 的计算机上使用恢复控制台
307654 如何在 Windows XP 中安装和使用恢复控制台
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈