Problem solve Get help with specific problems with your technologies, process and projects.

Why disk performance sometimes slows in Windows

Windows users are reporting that after a number of suspend/resume cycles, their disk performance may slow. This is because the IDE controller's transfer mode is reset by default to a slower mode. Here is the workaround.

Some Windows users have noticed that, after suspending and resuming their computer several times without rebooting, disk performance becomes unusually poor. This happens when the computer's disk controller is listed as an IDE controller in the Device Manager. After a number of suspend/resume cycles, the IDE controller's transfer mode may be reset to a slower mode. This typically starts with the IDE controller falling back to a slower direct memory access (DMA) mode, then eventually to the slowest mode of all, programmed I/O (PIO).

(Note: This usually leads to a good deal of grousing from users about why Windows always runs faster when they first boot it.)

Why does this happen? As it turns out, this behavior has been deliberately programmed into the ATAPI.SYS disk driver in Windows. This driver handles all generic IDE disk functions, including hard drives and CD/DVD drives, and also keeps running counts of any problems that arise with a given drive. If a drive times out (i.e., doesn't respond to commands) or returns a data error more than six times before a reboot, ATAPI.SYS reduces the speed of the device to prevent further errors. This causes the slowdown, and disk performance won't return to normal until the system is rebooted.

XP Service Pack 2 included a fix for this problem, and a hotfix for Windows Server 2003 also addresses it (which is only available for Microsoft Product Support Services; refer to Knowledge Base article 817472). However, the fix isn't enabled by default. To enable it:

  • Open the Registry and navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\.
  • Look under this key for a set of subkeys named 0001, 0002 and so on. There will be as many such entries as there are for each separate IDE controller in the system.
  • Within each of these numbered subkeys, add a new DWORD value named ResetErrorCountersOnSuccess and set it to 1.
  • Reboot the computer.

This should cause the computer to reset the error counter for a given device without needing a reboot, and keep it from dropping back to a lower speed unless it's really required.

Note: This behavior usually doesn't manifest after hibernating and resuming (as opposed to suspending and resuming), since hibernating involves powering off the system entirely and thereby resets the driver's error counters. Also, just to reiterate, this problem occurs only when the disk controller is listed as an IDE controller in the Device Manager. If your disks are controlled through something like a SATA RAID device, you won't be subject to this problem.

About the author: Serdar Yegulalp is editor of the Windows Power Users Newsletter, which is devoted to hints, tips, tricks, news and goodies for Windows NT, Windows 2000 and Windows XP users and administrators. He has more than 10 years of Windows experience under his belt, and contributes regularly to and

More information from

Dig Deeper on Windows administration tools

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.