http://winhlp.com/WxDMA.htm contains some useful info...
All this info... assumes that your Bios is set to auto recognize the drives. This is Microsoft's answer:
• In Windows 2000 only, read requests to ATA disks are sometimes issued with a time-out value of 4 seconds. This occurs when your computer resumes from standby. This might cause a disk time-out because drives typically take more than 4 seconds to spin up. This time-out value was changed to 10 seconds.
In Windows XP and Windows Server 2003, this time-out value is always 10 seconds.
• An alternate, less-aggressive policy is implemented to reduce the transfer mode (from faster to slower DMA modes, and then eventually to PIO mode) on time-out and CRC errors. The existing behavior is that the IDE/ATAPI Port driver (Atapi.sys) reduces the transfer mode after any 6 cumulative time-out or CRC errors. When the new policy is implemented by this fix, Atapi.sys reduces the transfer mode only after 6 consecutive time-out or CRC errors. This new policy is implemented only if the registry value that is described later in this article is present.
To implement the alternate behavior (reducing the transfer mode after six consecutive time-out or CRC errors instead of after six cumulative time-out or CRC errors), you must modify the registry as described below after you apply the hotfix.
WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.
Follow these steps, and then quit Registry Editor:
1. Click Start, click Run, type regedit, and then click OK.
2. Locate and then click the following key in the registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0001
3. On the Edit menu, point to New, and then click DWORD Value.
4. Type ResetErrorCountersOnSuccess, and then press ENTER.
5. On the Edit menu, click Modify.
6. Type 1, and then click OK.
Follow these steps, and then quit Registry Editor:
1. Click Start, click Run, type regedit, and then click OK.
2. Locate and then click the following key in the registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0002
3. On the Edit menu, point to New, and then click DWORD Value.
4. Type ResetErrorCountersOnSuccess, and then press ENTER.
5. On the Edit menu, click Modify.
6. Type 1, and then click OK.
Note The numbered subkeys that are listed earlier correspond to the primary and secondary IDE channels on a computer that contains a single IDE controller. If your computer contains two IDE controllers, the numbered subkeys for the primary and secondary IDE channels for each of the two controllers may be:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0002
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0003
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0004
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0005
To verify that you have located the correct subkey, verify that the DriverDesc value for the subkey contains the string value "Primary IDE Channel" or the string value "Secondary IDE Channel."