hewei's rss

何为 > 电脑问题 > 正文

2003自动关闭硬盘dma模式的问题

遇到一个百思不得其解的电脑问题。几个月来,我经常出现同样的问题,具体症状,在线听歌本来听得好好的,突然听歌就卡了,出现杂音,爆音,硬盘灯也老闪,现在打开电影看电影,也是一卡一卡,这样的情况出现了好几次,都是莫名其妙在听歌的时候突然出现。

这个问题困扰了我几个月,一直在思考到底是什么原因导致。我分析了几种可能:1、我喜欢用the world一次看很多窗口,我喜欢同时运行很多程序,比如,又是在采集,又是开了2个虚拟机,又开了n个窗口浏览,又还在听歌,这种情况导致我的声卡驱动或者主板驱动程序出错。2、查看系统事件,看看有什么错误提示。3、硬盘有坏道?在特定的时候遇到触发这个情况?

找来找去,驱动换了,等等,都没发现问题,百思不得其解,搜索也没找到相应信息,我知道肯定是有原因的,只是我没找到具体的情况。所以我每次只能ghost系统,就好了。这次又是在听歌的时候出现了,晕死,我今天一定得找出问题,我一直觉得我的本本硬盘速度慢,我的本本什么都好,双核,1.5g内存,就是硬盘感觉慢,硬盘是我整个系统的瓶颈,我想问题应该是在硬盘,我用HDTune测了一下,晕死,0.1m/s到1.1m/s,极不正常,然后我去硬件查看主要ide通道,当前传送模式为不可用,问题就在这里了,正常我的硬盘应该是dma mode5。然后我就根据这个线索搜索,终于给我发现原因了。

原来2003,xp会自动关闭硬盘的dma模式,自动改成PIO模式,为什么会这样或者什么情况下会这样呢,原来在Windows 2000/XP/2003中有这样一个设定: Windows IDE/ATAPI 端口驱动程序 (Atapi.sys) 累积收到总共6个超时或循环冗余检验 (CRC) 错误后,驱动程序将把通信速度(传送模式)从最快的直接内存访问 (DMA) 模式分步骤降为较慢的 DMA 模式。如果驱动程序继续收到超时或 CRC 错误,则驱动程序最终将把传送模式降为最慢的模式(PIO 模式)。 问题就在这里!一般来说一个正常的硬盘很少会有超时或循环冗余检验 (CRC) 错误,但是当我们使用这些系统里的挂起(也有叫休眠)并恢复计算机后就很容易造成超时或循环冗余检验 (CRC) 错误。因为系统设定的超时值为4秒,当系统向 ATA 磁盘发出读取请求时如果硬盘回应时间超过 4 秒的超时值时才会产生超时或循环冗余检验 (CRC) 错误,但因为系统在挂起(也有叫休眠)时硬盘是在停转状态中,恢复计算机时硬盘有个从停止到运动的过程,这就很容易造成大部分硬盘回应时间超过 4 秒的超时值。也就是说当我们使用计算机挂起6次后系统就会把通信速度(传送模式)从最快的直接内存访问 (DMA) 模式分步骤降为较慢的 DMA 模式。如果挂起6次以上则驱动程序最终将把传送模式降为最慢的模式(PIO 模式)。这就是Windows 系统突然变慢的原因。这也是为什么我听歌听着听着就出现那样的情况的原因。

难道是我的程序开太多了?真是郁闷了,不过我的本本这个硬盘真是很垃圾,经常常闪,反应慢。

知道了原因,我们就来修正把。

解决问题

若要为受影响的设备重新启用典型DMA或更快DMA的传送模式,请执行以下操作:

1.双击“管理工具”,然后双击“计算机管理”;

2.单击“系统工具”,然后单击“设备管理器”;

3.展开“IDE ATA/ATAPI 控制器”节点;

4.双击您要为其恢复典型 DMA 传送模式的控制器;

5.单击“驱动程序”选项卡;

6.单击“卸载”。

当此过程完成后,重新启动您的计算机。当 Windows 重新启动后,将重新枚举硬盘控制器,同时与该控制器相连的每个设备的传送模式将重置为默认值。

但这样只是把硬盘设备的传送模式重置为默认值,当我们再使用挂起系统时系统又会自行关闭DMA模式!所以我们还要做以下操作:

1.单击“开始”,单击“运行”,键入 Regedit,然后单击“确定”。

2.在注册表中找到并单击以下项:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0001和 

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0002 

3.在“编辑”菜单上,指向“新建”,然后单击“DWORD 值”。

4.键入 ResetErrorCountersOnSuccess,然后按 Enter 键。

5.在“编辑”菜单上,单击“修改”。

6.键入1,然后单击“确定”。

7.按照下列步骤操作,然后退出注册表编辑器:

注意

上面注册表最后的项“”列出的带有“0001”编号的子项对应于一台仅有一个 IDE 控制器的计算机的主要 IDE 通道和次要 IDE 通道。如果您的计算机有两个 IDE 控制器,则对于每个控制器,主要 IDE 通道和次要 IDE 通道的带有编号的子项分别是:“0001、0002、0003、0004、0005、0006……”。

为检查是否找到了正确的子项,请检查子项的 DriverDesc 值是包含字符串值“主要 IDE 通道”,还是包含字符串值“次要 IDE 通道”。

建立以上注册表键值的目的是

在Windows中,使系统向 ATA 磁盘发出读取请求时的 4 秒的超时值更改为 10 秒。还实现了一种较不严格的变通策略以在发生超时错误和 CRC 错误时降低传送模式(从较快的 DMA 模式到较慢的 DMA 模式,最终降为 PIO 模式)。以前的情况是,在每当累积发生的超时错误或 CRC 错误的总数达到 6 次时,IDE/ATAPI 端口驱动程序 (Atapi.sys) 将降低传送模式。当我们建立以上注册表键值实现新的策略后,Atapi.sys 仅在连续发生 6 次超时错误或 CRC 错误后才降低传送模式。

这一新的策略实现后将大大降低系统降低或关闭DMA传送模式的机会。现在我们可以安心地使用挂起系统和高性能的DMA硬盘模式,再也不会发生系统性能突然下降的情况了。

返回顶部网友评论»查看所有评论

发表评论:(内容不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。)

您的昵称:验证码: 验证码查看所有评论

About Hewei.org

何为的博客。记录我的生活点滴,技术经验,奇思妙想。无聊的时候看看自己记录的思想,也是一种享受。

订阅何为的博客
  • ZhuaXia 订阅到抓虾
  • SouYo 订阅到沙发
信息检索 In Hewei.org
Hot标签
最新推荐主题
最新推荐专题
  • google adsense
  • firfox
  • 域名无忧
  • 在线交友
XHTML 1.0 StrictValid CSS 2.1
何为博客!意欲何为?大有作为!Copyright © HeWei.Org
皖ICP备06010916号