From what I understand, the solution from microsoft posted by joefriday, may not fix the problem. I don't know the technical stuff behind it, but my understanding is that it may revert back to PIO if all you do is select DMA in the pulldown menu.
What's worked for me is to uninstall the IDE driver from device manager and then reboot. When Windows restarts, the driver will be reloaded and should default to "Ultra DMA if available". If not, just select it from the pulldown menu.
My limited understanding is that "something" keeps track of the number of either read or write errors and makes the controller revert back to PIO after a certain number of errors.