当处理器从 C1 空闲状态恢复时,可能会收到“停止0x0000000A”错误消息

本文提供了当处理器从 C1 空闲状态恢复时出现错误消息“停止0x0000000A”的解决方法。

适用于: Windows Server 2003
原始 KB 数: 908369

症状

当基于 Microsoft Windows Server 2003 的计算机上的处理器从 C1 空闲状态恢复时,计算机可能会停止响应。 此外,可能会遇到以下一个或多个症状:

  • 计算机会自动重启。

  • 登录后,会收到以下错误消息:

    Microsoft Windows
    系统已从严重错误中恢复。
    已创建此错误的日志。
    请告知Microsoft此问题。
    我们创建了一个错误报告,你可以发送该报告来帮助我们改进Microsoft Windows。 我们将此报告视为机密和匿名报告。
    若要查看此错误报告包含的数据,请单击此处。

    如果错误消息仍然存在,并且要查看错误报告包含的数据,请单击消息框底部的 单击此处 链接。 然后会看到类似于以下内容的错误签名信息:

    BCCode: 0000000A BCP1: 0f6ff8c0 BCP2: 000000ff BCP3: 00000000 BCP4: 8074867e OSVer: 5_2_3718 SP: 0_0 Product: 272_3

  • 蓝屏上收到以下“停止”错误消息:

    检测到问题,Windows 已关闭,以防止计算机损坏。
    技术信息:
    停止:0x0000000A(0x0f6ff8c0、0x000000ff、0x00000000、0x8074867e)
    IRQL_Not_Less_Or_Equal

  • 系统事件日志中记录了类似于以下内容的错误消息:

    日期:date
    来源:系统错误时间:时间
    类别:(102)
    类型:错误
    事件 ID:1003
    用户:N/A
    计算机:计算机
    说明:错误代码 0000000A、parameter1 0f6ff8c0、parameter2 000000ff、parameter3 00000000、parameter4 8074867e。有关详细信息,请参阅 https://support.microsoft.com.Data:0000: 53 79 73 74 65 6d 20 45 系统 E0008:72 72 6f 72 20 20 45 72 rror Er0010:72 6f 72 20 63 6f 64 65 ror code0018:20 30 30 30 30 30 30 35 00000 0A0020:30 20 20 50 61 72 61 6d 0 Param0028:65 74 65 72 73 20 66 66 eters ff0030:66 66 66 66 64 31 2c

注释

  • “停止”错误的症状因计算机的系统故障选项而异。 有关详细信息,请单击以下文章编号以查看Microsoft知识库中的文章:307973 如何在 Windows 中配置系统故障和恢复选项
  • 错误签名信息中包含的四个参数因计算机的配置而异。
  • 并非所有“停止0x0000000A”错误都是由本文介绍的问题引起的。

原因

由于某些 CPU 的 bug,因此会出现此问题。

指令字节以固定大小的块(缓存行)被读入指令缓存。 当构成指令的字节跨缓存行边界时,指令字节占用多个相邻的缓存行。 如果发生特定的处理器错误,处理器可能会从错误的缓存行读取指令的第二部分以供执行。 此行为会导致指令不正确。

包含在修补程序 840987 中的 Ntkrnlmp.exe 文件包含一系列揭示该 bug 的指令。

注释

仅当处理器正在处理导致处理器从 C1 空闲状态恢复的处理器间中断(PI)时,才会发生此问题。

解决方法

重要

本部分、方法或任务包含说明如何修改注册表的步骤。 但是,如果修改注册表不正确,则可能会出现严重的问题。 因此,请确保仔细执行这些步骤。 作为额外保护措施,请在修改注册表之前先将其备份。 然后,如果出现问题,可以还原注册表。 有关如何备份和还原注册表的详细信息,请单击以下文章编号以查看Microsoft知识库中的文章:
322756 如何在 Windows 中备份和还原注册表

若要解决此问题,请阻止处理器进入 C1 空闲状态。 为此,请执行以下步骤:

  1. 启动注册表编辑器。 为此,请单击“开始 ,单击 “运行”,键入 regedt32,然后单击 “确定”

  2. 找到并单击以下注册表子项:HKEY_LOCAL_MACHINE\System\CurrentControlset\Control\Session Manager\Power

  3. 单击 编辑,指向 新建,单击 DWORD 值,然后键入 IdleFrom0IdlePercent

  4. 右键单击 IdleFrom0IdlePercent,然后单击 修改。 在 “编辑 DWORD 值”对话框中,在“值数据”框中键入一个大于 100 的数字,单击“基数”下的 “十进制”,然后单击 “确定”

    注释

    以下两个注册表子项控制 Windows 何时导致处理器进入 C1 空闲状态:HKEY_LOCAL_MACHINE\System\CurrentControlset\Control\Session Manager\Power\IdleFrom0DelayHKEY_LOCAL_MACHINE\System\CurrentControlset\Control\Session Manager\Power\IdleFrom0IdlePercent
    例如,假设已将 IdleFrom0IdlePercent 值设置为 10,并将 IdleFrom0Delay 值设置为 5。 在这种情况下,系统必须在 5 微秒内保持 10% 的空闲状态,然后 CPU 才会进入 C1 空闲状态。 因此,如果将 IdleFrom0IdlePercent 值设置为大于 100 的数字,则 CPU 永远不会进入 C1 空闲状态。

状态

Microsoft已确认,这是“适用于”部分中列出的Microsoft产品中的问题。