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!):
- Fire up the registry editor
- Navigate to the key
- You should see keys numbered from
0001. Look for one which contains a DWORD value named
MasterDeviceTimingModeAllowedwhich has a values less than
- Change that value back to
- Create a DWORD value with the name
ResetErrorCountersOnSuccessand the value of 1.
- Reset your computer and verify in device manager that you have DMA enabled for the CD-ROM.
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