Back to Top

Wednesday, November 22, 2006

Windows PIO mode fallback problem

Windows (starting from Win2k I think) has an interesting feature: after a certain number of failures on a given IDE channel, it reverts that channel from DMA to PIO mode. This is perfectly reasonable for hard disks (although a user warning would still be useful), but for CD-ROMs this is deadly because a bad CD can produce many read errors without the readers fault. And if the CD-ROM is reverted to PIO you'll see a considerable degradation in performance. Here is the solution which worked for me (attention! this is rocket science stuff! only do it if you know your way around the registry!):

  1. Fire up the registry editor
  2. Navigate to the key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}
  3. You should see keys numbered from 0001. Look for one which contains a DWORD value named MasterDeviceTimingModeAllowed which has a values less than 0xffffffff.
  4. Change that value back to 0xffffffff.
  5. Create a DWORD value with the name ResetErrorCountersOnSuccess and the value of 1.
  6. Reset your computer and verify in device manager that you have DMA enabled for the CD-ROM.

For more information look to winhlp.com or Microsoft.

Update: I've put together a small program which automatizes the setting of registry values. You can download it here, and for the curios ones, you can get the source code here (it was written in Delphi with the ACL library).

The exe file has the following characteristics:

  • File size: 12800 bytes
  • MD5: 9cbdd9ec65c900b67f75578d082cd940
  • SHA1: 50bba9d745059c806823e6b2fc2d8c4503a77e43

4 comments:

  1. thanks a lot for this great fix; my pc was aways troubled for that PIO fallback issue.

    Regards

    ReplyDelete
  2. I'm glad that I could help.

    ReplyDelete
  3. Anonymous4:14 PM

    Thanks a lot for this info. My computer also has been suffering from this problem. I was on the verge of reinstalling windows to fix it! I had checked almost everything else...no heavy background tasks running, latest drivers installed for everything, etc etc. PIO mode was causing hardware interrupt spikes, making my games and other real-time apps almost unusable. Anyone with inexplicable "choppy" performance should check and make sure all of their drives are still in DMA mode. Thanks again!

    ReplyDelete
  4. I'm happy that I've helped. Thanks for the nice comment.

    ReplyDelete