RyanTAdams.com

Technology Advice by Ryan Taylor Adams

Enabling And Troubleshooting DMA Mode in Windows

January 6th, 2009 · No Comments · Printer Friendly Version

WARNING! THIS POST IS MORE THAN 180 DAYS OLD!

While I make an effort to update older posts to keep them relevant and technically accurate, the rapidly changing nature of the tech world makes it possible that the content of this post may no longer be relevant, current, or even accurate. Additionally, because of this post's age, adding new comments has been disabled. If you would like to contribute new information to this post, or have questions pertaining to this post, please use the Contact Form.


DMA (Direct Memory Access) mode is a high performance mode for transferring data to an from hard drives, optical drives, and other devices attached to an ATA controller. DMA mode allows a computer processor to transfer large pieces of data with very little software overhead, which reduces CPU usage. The alternative transfer mode is called PIO, which is slower and requires more CPU usage. Your hard drives should be operating in DMA mode automatically. However, often times CD/DVD-Rom and burner drives default to PIO mode. If you notice an extreme slow down when reading or burning optical disks, or if you get buffer under-run errors frequently when burning CD/DVDs, your drive is probably operating in PIO mode. Here is how to change it, and what to do if you encounter it:


To enable DMA mode:

  1. Open the Windows Control Panel, then select “System”.
  2. In Windows XP, select the “Hardware” tab in the window that opens. Then click “Device Manager.” In Vista, select “Device Manager” from the list on the left in the window that opens.
  3. In the window that opens, find “IDE ATA/ATAPI controllers” and click the plus sign next to it.
  4. Double-click on “Primary IDE Channel.”
  5. In the window that opens, click the “Advanced Settings” tab.
  6. For both “Device 0″ and Device 1”, set the “Transfer Mode” to “DMA if available”.
  7. The “Current Transfer Mode” line will tell you what mode each device is currently in. If after following these steps and rebooting, PIO mode is still in use, please see the troubleshooting tips below.
  8. Press “OK.”
  9. Double click on “Secondary IDE Channel” and repeat steps 5 through 8.
  10. Close the “Device Manager” window and reboot your computer.

If you followed the steps above and a device still refuses to switch to DMA mode:

  • Update your ATA controller card drivers by visiting your computer manufacturer’s driver download page. The drivers may be listed under “chipset”, “storage”, or “ATA Controllers”.
  • Make sure you are using a 80-conductor cable between your motherboard (or controller card) and the drive. These look very similar to 40-conductor cables, the only difference being the number of wires.
  • Update your BIOS. Again, BIOS updates and instructions can be found on your computer manufacturer’s website.
  • Enable DMA mode in your BIOS. A few computer require DMA mode to first be enabled in the BIOS. Consult with your computer manufacture to find out if this is the case.
  • Windows XP will revert to PIO mode after several failed attempts to use DMA mode. Windows XP will then not return to DMA mode even if you follow the instructions above. The solution is to uninstall the drive (in Device Manager) and reboot. Windows will detect the drive at the first boot and use it. Then go through the steps above again. Of course, if there is a real problem using DMA mode, Windows will revert to PIO mode again.
  • Some drives/controllers just don’t support DMA. This is particularly likely if you are using an old drive or your computer is old.

If you have an SATA (serial ATA) drive/controller, select the “Serial ATA Controller” item in steps 4 and 9. The other steps will be similar, if not the same. In most cases, the SATA controllers are smart enough to figure DMA mode out on their own. Changing settings here is only recommended if you really know what you are doing.

If you found this post helpful, please consider making a donation to help cover the costs of this site: