(new) Obtaining the current IDE ATA transfer mode

We were able to obtain the IDENTIFY DEVICE data for a particular drive (using one of the SMART IOCTL). It does return information about the selected DMA and Ultra-DMA mode.

However, when we force the device in PIO mode in device manager, the IDENTIFY_DEVICE data does not show that the DMA mode has been de-selected. We know that PIO is effectively used since we observe distinct disk performance degradation and increased CPU usage. It seems that Windows starts accessing the physical drive in PIO, but does not need to de-select the DMA modes. We tried it on a variety of PC’s with W2k SP4 and XP SP2 (always IDE hard disks).

How can we determine the transfer mode that Windows is actually using at a given time?



Subject: RE: Obtaining the current IDE ATA transfer mode
From: “Mark Overby”
Date: Tue, 14 Jun 2005 11:08:48 -0700
X-Message-Number: 10

IDENTIFY DEVICE always contains the currently selected PIO and DMA
transfer modes. (See ATA/ATAPI-7 if you want the gory details).

Note - IOCTL_ATA_PASS_THROUGH won’t work on all OS’s and with all
drivers. (It’s a security hole that some people close)=20