• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

surefire ways to fix windows xp DMA problems?

Evander

Golden Member
I'm sure many of us have had windows be a pain in the ass and auto-disable DMA and use the hella slow pio transfer method and lock the user from making the change. I've managed to fix problems on my own systemby either A) screwing around with the registry B)deleted an IDE channel in device manager and let windows reinstall it. C) physically remove the drive from the cable, and have windows redetect it. There are problems with these methods though:

A) Can't activate dma for a drive:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Class \ {4D36E96A-E325-11CE-BFC1-08002BE10318}

Within this key you will find several subkeys. Most likely you will see the following:

0000 (for the IDE controller)
0001 (for the Primary IDE channel)
0002 (for the Secondary IDE channel)

Each of these subkeys has a named valued called "DriverDesc" that will make it clear to you to which component they correspond. Open the subkey corresponding to the channel on which your troublesome drive is located. Then, if the troublesome drive is the master, delete the "MasterIdDataChecksum" named value. Or, if the troublesome drive is the slave, delete the "SlaveIdDataChecksum" named value. Reboot

But this method doesn't always work

B) Dangerous. If windows doesn't detect the ide channel on reboot and you don't have or don't know where to get the driver, you're screwed

C) pain in the ass, and if you live far away from a computer illiterate friend you can't help them

Well I want to help a friend and method A didn't work, method B I'm not willing to do on someone else's machine, and method C I don't want to do because I may be moving away from this friend this year and would prefer a permanent solution.

So here's the question: how do you reenable DMA without hicups and force it to stay enabled?

 
Windows kicks you out of DMA because your hard drive takes too many tries to read the disk.
The rest is up to you.
 
I've never had the problem with the hard disk, but it's a common problem with optical drives. If dvd playback starts skipping or burning is taking forever, there's a good chance windows decided to set dma to pio
 
It is my understanding that Windows disables DMA due to getting to many read errors on the drive. PIO mode is safer.

ATA drives have very limited error detection/correction mechanisms so if you are having problems it's best to play it safe. Data channels have some error correction, but instruction channels don't. So you could run into major data corruption (or more likely bits being randomly flipped and occasional BSOD with limited file loss)

So find out why DMA is being disabled and correct it.

Common problems...
memory errors.
out of spec cables.
- cables to long
- folded cables
- rounded cables (and no the grounding they put on expensive cables is fake. It's laid flat to protect the cables from crosstalk, not prevent interference from other things)

driver errors.
bios problems.
bad drives.
bad controller

Stuff like that.


Every time I've had DMA go out it was usually due to a crash for some other reason. Also booting in safe mode may disable DMA, but I am not sure. I was able to re-enable it through the device manager dialog stuff.
 
If Windows is disabling DMA for you then you have a hardware problem, there's no way around that. With optical drives it's a little greyer of an area because bad discs can cause Windows to drop back to PIO mode and you can't reenable it without a reboot, which sucks but it's not something that should require a huge amount of thought or work.
 
Originally posted by: Nothinman
With optical drives it's a little greyer of an area because bad discs can cause Windows to drop back to PIO mode

That has always been a major pet peeve of mine about newer versions of Windows. Ideally, it would reset back up to DMA mode once you ejected the "bad" disc... but no, you have to suffer in PIO-mode heck for a while.
 
That has always been a major pet peeve of mine about newer versions of Windows. Ideally, it would reset back up to DMA mode once you ejected the "bad" disc... but no, you have to suffer in PIO-mode heck for a while.

Well obviously the limitation isn't easily worked around because you can't even force the interface back to DMA without a reboot or at least remove/readd the device. At least on Linux I can run 'hdparm -d 1 /dev/whatever' to reenable DMA at runtime.
 
Back
Top