在 Windows XP 中从 S3 状态恢复时计算机停止响应

针对 Windows XP 的支持已终止

Microsoft 已于 2014 年 4 月 8 日终止了针对 Windows XP 的支持。该更改已影响到您的软件更新和安全选项。 了解这一措施对于您的含义以及如何继续保持受保护状态。

本文已归档。它按“原样”提供,并且不再更新。
症状
如果您的计算机有两个 IDE 驱动器连接在同一条电缆上,则在从待机状态恢复时,它可能会停止响应(挂起)。
原因
发生此问题是因为 IDE 磁盘驱动器在其重置驱动器之前不检查驱动器状态中的忙碌位。这是使用 S3 睡眠作为待机状态的计算机具有的一个问题。这些计算机停止对驱动器供电,而不是像 S2 待机过程那样向驱动器发送一个睡眠命令。此行为导致在驱动器重启时,驱动器在协商完成前就被重置。

ATAPI 驱动器的技术规范要求在驱动器重置之前检查忙碌位。该规范还规定,驱动器在得到同步之前和在协商之后做好操作准备之前,将一直忽略重置命令。截止到 2002 年 7 月,某些驱动器还不具备此功能。此行为可导致有两个驱动器的计算机在启动时让同一电缆上的两个驱动器都编程为主驱动器。发生这种情况时,您的计算机可能会停止响应(挂起)。
解决方案
要解决此问题,请获取最新的 Windows XP Service Pack。有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322389 How to Obtain the Latest Windows XP Service Pack
Microsoft 提供了一个 Atapi.sys 驱动程序,它等待驱动器完成协商,然后才发送重置命令。此等待由以下 DWORD 注册表项控制:
HKey_Local_Machine\System\CurrentControlSet\Services\Atapi\Parameters\WaitOnBusyOnPowerUp
此修复程序的默认行为是让 Atapi.sys 在发送重置命令之前不等待。出现此行为是因为安装了修复程序但注册表项不存在,或注册表项设置为 0。

如果遇到了本文介绍的症状,您必须创建注册表项并把其值设置为 1。这样做后,Atapi.sys 在向驱动器发送重置命令之前将等待,于是防止了计算机进入不响应的状态。

该修复程序的英文版应具有如下文件属性或更新的属性:
Date         Time   Version      Size       File name   --------------------------------------------------08-16-2002  10:31am 5.1.2600.55 87,168   Atapi.sys				

状态
Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中存在的问题。 这个问题已在 Windows XP Service Pack 1 中得到纠正。SP1 中包括了此修复程序。当此修复程序由 SP1 安装时,此默认行为保持不变,而且 Atapi.sys 将发送重置命令。如果您的计算机在应用了 SP1 之后呈现出这些症状,您必须创建本文“解决办法”部分提及的注册表项并把其值设置为 1 以打开延迟。
更多信息
此问题主要与硬件有关,Windows 2000 中也存在这一问题。有关计算机从 Windows 2000 的 S3 状态恢复时不响应的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中的相应文章:
323153 Computer May Hang During Resume from S3 Standby with Two IDE Drives
属性

文章 ID:317272 - 上次审阅时间:01/12/2015 19:43:27 - 修订版本: 1.1

  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional Edition
  • kbnosurvey kbarchive kbbug kbfix kbqfe kbenv kboswin2000fix kbwinxpsp1fix kbhotfixserver KB317272
反馈