关于启用DMA的方法

这是一个老问题……希望对那些不幸遇到的朋友有点帮助

当然,这里的前提是:主板、硬盘(光驱)都支持DMA,驱动程序安装正确,启用了DMA模式但是仍然在低速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 模式)。

解决办法:将HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0001(主IDE控制器,或者\0002,从IDE控制器)中的MasterDeviceTimingModeAllowed(或SlaveDeviceTimingModeAllowed,取决于设备挂接的主从)改为0xffffffff,重启后就能修改DMA模式。

AND:
可以在刚才键中建立DWORD值ResetErrorCountersOnSuccess,设为1,这样Atapi.sys 仅在连续发生 6 次超时错误或 CRC 错误后才降低传送模式。

转载于:https://www.cnblogs.com/FancyMouse/archive/2007/02/12/648754.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值