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

当然,这里的前提是:主板、硬盘(光驱)都支持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 错误后才降低传送模式。