Thanks for the post… I actually came back to post that I have managed to solve my problem.
It seems that my computer switched to PIO mode and would not let me change it to DMA. Even when I chose “DMA if available”, the transfer mode was still PIO.
I found the following webpage that explained this and how to reset drive DMA capabilities :
I followed the regedit instructions and when I rebooted and checked Device Manager, I now have “Ultra DMA Mode 2” and everything works as it should.
Thanks for your help.
Here is the text from the webpage I found in case the link fails:
DMA reverts to PIO
DMA is an abbreviation for Direct Memory Access, an access method for external devices where the data transfer is not done by the central processor, but by a small special processor called DMA controller. It uses a procedure called cycle stealing, where the central processor memory access cycles are delayed for very short times to intersperse DMA controller memory access cycles. Some newer, faster DMA modes are called UDMA (Ultra DMA).
The alternative, slow and inefficient data transfer mode is called PIO, Programmed Input-Output, where the central processor transfers data byte for byte or word for word. This requires many processor commands for each data word and therefore causes a high and unwanted processor load.
Windows contains a trap in which quite a few computers seem to get caught sooner or later. The trap is described in the following article (and also in another one mentioned below):
DMA Mode for ATA/ATAPI Devices in Windows XP
The crucial paragraphs are:
PIO mode is enabled by default in the following situations:
For repeated DMA errors. Windows XP will turn off DMA mode for a device after encountering certain errors during data transfer operations. If more that six DMA transfer timeouts occur, Windows will turn off DMA and use only PIO mode on that device.
In this case, the user cannot turn on DMA for this device. The only option for the user who wants to enable DMA mode is to uninstall and reinstall the device.
Windows XP downgrades the Ultra DMA transfer mode after receiving more than six CRC errors. Whenever possible, the operating system will step down one UDMA mode at a time (from UDMA mode 4 to UDMA mode 3, and so on).
Of course, drive firmware being quite complex and certainly containing programming defects of its own, it is not all that difficult to produce such errors. In my case a scratched DVD and later also an unreadable (overburned) CD did the trick, got the drive to choke and Windows to disable DMA for good. Later my hard disk hiccupped just once and also went back to PIO for good.
I had been using my laptop for DVD viewing for years, until I inserted a borrowed and heavily scratched DVD. The player and apparently even the DVD drive choked on it, and when I finally got the DVD to play, I found that playing was jerky and processor load was 100%, roughly half of which was system overhead.
This indicated that the drive had reverted from the usual UDMA (Ultra Direct Memory Access) mode 2 to PIO (Programmed Input Output) mode. No amount of resetting or changing the relevant registry parameters from 1 (try DMA) to 2 (force DMA) helped. Stubbornly the drive kept using PIO mode, and Windows even changed these settings back to 0 (use PIO only).
The following text will refer to the secondary IDE port because that is more often affected, but essentially the same also holds for the primary IDE port, to which the main hard disk is connected in most computers.
Before you begin to work on the problem, log on as Administrator or as a user with administrator rights.
Check Your IDE Port Mode
First check what mode your secondary IDE port is currently working in. Go to Device Manager: right-click on My Computer, select Properties, click on the Hardware tag, click on the Device Manager button, click on the plus sign to the left of IDE ATA/ATAPI Controller, double-click on the secondary IDE channel, click on Extended Settings and check whether it is set to DMA when available. Directly underneath that setting is a grey field that shows the actual working mode of your IDE channel. You want the highest possible DMA or Ultra DMA mode there, and you definitely don’t want PIO mode.
Normally you don’t have to use the registry editor for this, because the normal settings are also available through the properties dialog for the IDE port, but if you want to look at it anyway, the parameter for the secondary IDE port can be found through regedit.exe at
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\Scsi\Scsi Port 1
It is named Scsi only for historic reasons. Scsi Port 0 is the primary IDE port, to which presumably your hard disk is connected.
After trying various remediesâ€”in vainâ€”I found the abovementioned article and went to work again. I uninstalled the DVD drive in Device Manager and rebooted, but that did not help either.
So I searched for more and better information, then I went on and did the following.
Re-enable DMA using the Registry Editor
My thanks go to my fellow MVP Alexander Grigoriev who taught me this method.
Run REGEDIT. Go to the following key:
It has subkeys like 0000, 0001, 0002, etc. Normally 0001 is the primary IDE channel, 0002 the secondary, but other numbers can occur under certain circumstances. Check the DriverDesc value to see which one it is.
Delete MasterIdDataChecksum or SlaveIdDataChecksum, depending on whether the device in question is attached as master or slave, but it can’t actually hurt to delete both. Reboot. The drive DMA capabilities will be redetected.
Open Device Manager again and check whether the device is now actually using DMA mode. If so, congratulations, you’ve made it (at least until the next time Windows disables DMA).
Alternative Methodâ€”Uninstalling the Port
- Uninstall the secondary IDE port
To do that, open Device Manager as follows. Right-click on My Computer, select Properties, click on the Hardware tag, click on the Device Manager button, click on the plus sign to the left of IDE ATA/ATAPI Controller, right-click on Secondary IDE Channel, click on Uninstall. Deactivating is not enough.
Reboot to make the changes active and permanent.
After booting Windows will automatically reinstall the IDE channel and the DVD (or CD) drive. This Plug-n-Play process can take a little while, so give it a minute after the boot process finishes.
- Reactivate DMA
But this is not enough, because unfortunately Windows does not automatically activate DMA on a DVD or CD drive. You have to tell Windows to try to use DMA first.
For that, go to Device Manager again. Right-click on My Computer, select Properties, click on the Hardware tag, click on the Device Manager button, click on the plus sign to the left of IDE ATA/ATAPI Controller, double-click on the secondary IDE channel, click on Extended Settings and change the relevant setting from PIO only to DMA when available.
On Windows NT and 2000 you now have to reboot a second time, but Windows XP applies the change instantly. Then you can go to the same place in Device Manager again and check whether the device is now actually using DMA mode. If so, all is well.
- Driver is not intended for this platform
If you keep getting the following error message:
There is a problem installing this hardware.
An error occurred during the installation of the device. Driver is not intended for this platform.
then the way out is to rename C:\WINDOWS\system32\drivers\atapi.sys (or a similar path on your computer) to something like atapi.old.
If that’s not possible, you can try it from the repair console (boot from the Windows install CD and select the repair console).
If Windows always automatically recreates atapi.sys, you can try renaming it in safe mode or from a command line window or you can try to rename or remove it in the driver cache as well.
Desensitize Your Computer’s IDE Channels
There’s a bit more to it. The following article offers a way to reduce the incidence of this problem, although it still doesn’t solve it altogether.
IDE ATA and ATAPI Disks Use PIO Mode After Multiple Time-Out or CRC Errors Occur
Do read this article because it contains a useful long-term workaround. But you have to go through the procedure described here to re-enable DMA first. Assuming you’ve done that, insert the ResetErrorCountersOnSuccess registry values mentioned in this article into both the primary and the secondary IDE port registry keys as described.
Unfortunately this is only a half solution, because when you enter an unreadable DVD, you will get 6 errors in a row, and the IDE channel will revert to PIO mode, but at least when you pull out the DVD in time and then insert a good one, the error counter will be reset and it will at least be a bit more difficult for Windows to hobble your IDE drive