如何在 Windows XP 或 Windows Server 2003 中解决 STOP 0xC000021A 错误

本文介绍 STOP 0xC000021A 错误的高级故障排除步骤。

家庭用户:本文旨在供支持代理和 IT 专业人员使用。 如果您在使用计算机时需要查找有关蓝屏错误代码的详细信息,请参阅 排查蓝屏错误

原始 KB 数: 156669

本文适用于高级计算机用户。 如果不熟悉高级故障排除,请向某人寻求帮助或联系技术支持。

使用运行“适用于”部分中所列作系统之一的服务器或工作站时,可能会收到以下错误消息:

STOP: c000021a {致命系统错误}
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 以捕获用户模式程序错误,请执行以下步骤:

  1. 在命令提示符下,键入 系统根\System32\Drwtsn32.exe -I,然后按 Enter。

    此命令将 Dr. Watson 配置为默认系统调试器。

  2. 在命令提示符下,键入 系统根\System32\Drwtsn32.exe,然后选择以下选项:

    • 追加到现有日志文件
    • 创建故障转储
    • 视觉通知
  3. 计算机从 STOP 0xC000021A 错误重启后,运行 Dr. Watson(Drwtsn32.exe)。

  4. 查看 Watson 博士日志以确定哪些用户模式过程可能会导致问题。

  5. 如果 Watson 博士日志不包含足够的信息来确定问题的原因,请分析User.dmp文件以确定 STOP 0xC000021A 错误的原因。

    如果 Watson 博士没有为 Winlogon.exe 或 Csrss.exe创建User.dmp文件,则可能必须使用其他工具来生成失败进程的内存转储文件。 有关详细信息,请参阅以下文章:

    241215 如何使用 Userdump.exe 工具创建转储文件

    注释

    按照知识库文章中的说明对一个异常关闭的进程进行故障排除。 在按照这些说明进行操作时,请监控以下过程以排查 STOP 0xC000021A 错误:

    • Winlogon.exe
    • Csrss.exe

    大多数 STOP 0xC000021A 错误都因 Winlogon.exe 失败而发生。 这通常是由于第三方图形标识和身份验证 (GINA) DLL 错误而发生的。 GINA 是 Winlogon.exe 加载的可替换 DLL 组件。 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。 如果在安装新的或更新的设备驱动程序、系统服务或第三方程序后首次发生此错误,则应删除或禁用新软件。 请联系软件制造商,查看更新是否可用。

上次已知的良好配置

如果本文前面的步骤无法解决问题,请使用上一个已知良好的配置启动计算机。 若要使用最后一个已知良好的配置启动计算机,请执行以下步骤。

注释

由于有多个版本的 windows Microsoft,因此计算机上以下步骤可能有所不同。 如果是,请参阅产品文档以完成这些步骤。

  1. 选择 “启动”>关闭

  2. 点击 重启>确定

  3. 在指示的时间按 F8:

    • 对于基于 x86 的计算机:当文本屏幕出现然后消失时,请按 F8。 (文本屏幕可能包括内存测试、关于 BIOS 的行和其他行。可能还会有提示提示你何时按 F8。
    • 对于基于 Itanium 体系结构的计算机:从启动菜单中选择后,按 F8。 可能会提示你何时按 F8。
  4. 使用箭头键选择 “上次已知良好配置”,然后按 Enter。

    在数字键盘上的箭头键正常工作之前,NUM LOCK 必须处于关闭状态。

  5. 使用箭头键突出显示操作系统,然后按“Enter”。

注释

  • 选择“上次已知良好配置”启动选项可以帮助你从问题中恢复,例如因新添加的驱动程序引起的问题,而这些驱动程序可能不适合你的硬件。 但是,它无法解决由损坏或缺少驱动程序或文件引起的问题。
  • 选择“上次已知良好配置”选项时,仅还原注册表项 HKLM\System\CurrentControlSet 中的信息。 在其他注册表项中所做的任何更改仍然有效。

使用恢复控制台删除不兼容的软件

如果本文前面的步骤无法解决问题,请使用恢复控制台删除不兼容的软件。 介绍如何执行此作的完整步骤超出了本文的范围。 但是,可以使用以下文章作为准则:

816104 如何在 Windows Server 2003 中使用恢复控制台替换驱动程序
326215 如何在未启动的基于 Windows Server 2003 的计算机上使用恢复控制台
307654 如何在 Windows XP 中安装和使用恢复控制台