事件 ID 41 的高级故障排除:“系统已重新启动,但未先完全关闭”

注意

家庭用户:本文适用于支持代理和 IT 专业人员。 如果要查找有关蓝屏错误消息的详细信息,请访问 蓝屏错误疑难解答

关闭 Windows 的首选方法是选择 “开始”,然后选择一个用于关闭或关闭计算机的选项。 使用此标准方法时,操作系统会关闭所有文件并通知正在运行的服务和应用程序,以便它们可以将任何未保存的数据写入磁盘并刷新任何活动缓存。

如果计算机意外关闭,Windows 会在下次启动计算机时记录事件 ID 41。 事件文本类似于以下信息:

Event ID: 41  
Description: The system has rebooted without cleanly shutting down first.

此事件指示某些意外活动阻止 Windows 正确关闭。 这种关闭可能是由于电源中断或停止错误造成的。 如果可行,Windows 会在关闭时记录任何错误代码。 在下一个 Windows 启动的 内核阶段 ,Windows 会检查这些代码,并在事件 ID 41 的事件数据中包含任何现有代码。

EventData  
BugcheckCode 159  
BugcheckParameter1 0x3  
BugcheckParameter2 0xfffffa80029c5060  
BugcheckParameter3 0xfffff8000403d518  
BugcheckParameter4 0xfffffa800208c010  
SleepInProgress false  
PowerButtonTimestamp 0Converts to 0x9f (0x3, 0xfffffa80029c5060, 0xfffff8000403d518, 0xfffffa800208c010)  

排查意外关闭或重启问题时如何使用事件 ID 41

事件 ID 41 本身可能不包含足够的信息来显式定义发生的情况。 通常,还必须考虑意外关机时发生的情况 (例如,电源) 失败。 使用本文中的信息确定适合你的情况的故障排除方法:

  • 方案 1:计算机因“停止”错误而重启,事件 ID 41 包含“停止”错误 (bug 检查) 代码
  • 方案 2:由于按下并按住电源按钮,计算机重新启动
  • 方案 3:计算机无响应或随机重启,未记录事件 ID 41 或事件 ID 41 条目列表错误代码值为零

方案 1:计算机因“停止”错误而重启,事件 ID 41 包含“停止”错误 (bug 检查) 代码

当计算机因“停止”错误而关闭或重新启动时,Windows 在事件 ID 41 中包含“停止”错误数据,作为更多事件数据的一部分。 此信息包括“停止”错误代码 (也称为 bug 检查代码) ,如以下示例所示:

EventData  
BugcheckCode 159  
BugcheckParameter1 0x3  
BugcheckParameter2 0xfffffa80029c5060  
BugcheckParameter3 0xfffff8000403d518  
BugcheckParameter4 0xfffffa800208c010  

注意

事件 ID 41 包含十进制格式的 bug 检查代码。 大多数描述 bug 检查代码的文档都将代码称为十六进制值而不是十进制值。 若要将十进制转换为十六进制,请执行以下步骤:

  1. 选择“开始”,在“搜索”框中键入 calc,然后选择“计算器”。
  2. “计算器 ”窗口中,选择 “查看>程序员”。
  3. 在计算器左侧,验证 12 月 是否突出显示。
  4. 使用键盘输入 bug 检查代码的小数值。
  5. 在计算器的左侧,选择 “十六进制”。
    计算器显示的值现在是十六进制代码。

将 bug 检查代码转换为十六进制格式时,请验证“0x”指定后跟 8 位数字 (即“x”后的代码部分包含足够的零,以填写 8 位数字) 。 例如,0x9F通常记录为0x0000009f,0xA记录为0x0000000A。 在本文中的示例事件数据中,“159”转换为0x0000009f。

确定十六进制值后,请使用以下引用继续进行故障排除:

方案 2:由于按下并按住电源按钮,计算机重新启动

由于此重启计算机的方法会干扰 Windows 关闭操作,因此建议仅在您没有替代方法的情况下才使用此方法。 例如,如果计算机未响应,则可能必须使用此方法。 通过按住电源按钮重启计算机时,计算机会记录事件 ID 41,其中包含 PowerButtonTimestamp 条目的非零值。

有关对无响应计算机进行故障排除时的帮助,请参阅 Windows 帮助。 请考虑使用关键字(如“挂起”、“响应”或“空白屏幕”)来搜索帮助。

方案 3:计算机无响应或随机重启,未记录事件 ID 41 或事件 ID 41 条目或列表错误代码值为零

此方案包括以下情况:

  • 关闭无响应计算机的电源,然后重新启动计算机。
    若要验证计算机是否无响应,请按键盘上的 Caps 锁 键。 如果按 Caps 锁键时键盘上的 Caps 锁灯未更改,则计算机可能无响应 (也称为硬挂) 。
  • 计算机重新启动,但不会生成事件 ID 41。
  • 计算机重新启动并生成事件 ID 41,但 BugcheckCodePowerButtonTimestamp 值为零。

在这种情况下,某些操作会阻止 Windows 生成错误代码或将错误代码写入磁盘。 某些内容可能会阻止对磁盘的写入访问 (例如,如果计算机) 无响应,或者计算机可能关闭得太快,无法编写错误代码,甚至检测到错误。

事件 ID 41 中的信息提供了一些指示,指示从何处开始检查问题:

  • 未记录事件 ID 41 或 bug 检查代码为零。 此行为可能指示电源问题。 如果计算机的电源中断,计算机可能会关闭,而不会生成“停止”错误。 如果它确实生成了“停止”错误,则可能无法将错误代码写入磁盘。 下次计算机启动时,它可能无法记录事件 ID 41。 或者,如果是,bug 检查代码为零。 以下条件可能是原因:

    • 在便携式计算机的情况下,电池被移除或耗尽。
    • 在台式计算机中,计算机被拔下插头或发生停电。
    • 电源不足或出现故障。
  • PowerButtonTimestamp 值为零。 如果将电源断开连接到未响应输入的计算机,则可能会发生此行为。 以下条件可能是原因:

    • Windows 进程阻止了对磁盘的写入访问,你通过按住电源按钮关闭计算机至少四秒钟。
    • 将电源断开连接到无响应的计算机。

通常,此方案中描述的症状指示硬件问题。 若要帮助隔离问题,请执行以下步骤:

  • 禁用过度阻塞。 如果计算机已启用过度阻止,请禁用它。 验证系统以正确的速度运行时是否出现问题。
  • 检查内存。 使用内存检查器确定内存运行状况和配置。 验证所有内存芯片是否以相同的速度运行,并且系统中是否已正确配置每个芯片。
  • 检查电源。 验证电源是否有足够的瓦度来正确处理已安装的设备。 如果添加了内存、安装了较新的处理器、安装了更多的驱动器或添加了外部设备,则此类设备可能需要的能量可能比当前电源一致提供的能量还要多。 如果计算机由于计算机电源中断而记录事件 ID 41,请考虑 (UPS) (如电池备份电源)获取不间断的电源。
  • 检查是否过热。 检查硬件的内部温度,并检查是否有任何过热的组件。

如果执行这些检查,但仍无法隔离问题,请将系统设置为其默认配置,并验证问题是否仍发生。

注意

如果看到包含 bug 检查代码的“停止”错误消息,但事件 ID 41 不包括该代码,请更改计算机的重启行为。 为此,请按照下列步骤操作:

  1. 右键单击 “我的计算机”,然后选择“ 属性>高级系统设置>高级”。
  2. “启动和恢复 ”部分中,选择 “设置”。
  3. 清除 “自动重启 ”复选框。