Это стандартная бага ХР. Там есть счетчик, который считает ошибки при обращении к диску. Как только количество ошибок доходит до определенного значения, максимальны DMA-режим понижается на один пункт, счетчик обнуляется и все начинается сначала. После нескольких таких циклов режим свалиается в PIO. Причем ошибкой может быть (и чаще всего и бывает) просто из-за того, что диск или сидюк "заснул" и остановился и при обращении тривиально не успел раскрутиться. Лечится либо методом Andy-Andrei, либо использованием драйвера от производителя контроллера. Если мне не изменяет склероз, эту багу должны были пофиксить в SP2. Пофиксили или нет, я не выяснял, бо сам ХР не использую.