Re[2]: DMA и PIO
От: Alter_ Украина http://alter.org.ua
Дата: 13.02.05 11:24
Оценка:
Здравствуйте, Darth Maul, Вы писали:

DM>Вот, мучаюсь. Можно ли как-нибудь переключить винт из PIO в DMA и назад

DM>используя DeviceIoControl и IOCTL_ATA_PASS_TROUGH

DM>Соответственно во всех системах начиная с Win95 и заканчивая XP


На сколько я знаю, IOCTL_ATA_PASS_THROUGH появился только в последних виндах семейства NT.
В более младших NT есть возможность посылать ATA SMART команды через IOCTL_SCSI_MINIPORT_xxx.

В принципе можно, но драйвер контроллера об этом скорее всего так и не узнает.
Дальше пойдет несогласованая работа винта, контроллера и драйвера, что как правило
заканчивается timeout'ом, bus-reset'ом и переинициализацией. Или вообще подвисанием.

По идее, это можно делать через WMI в w2k и старше (Device Manager как-то с этим справляется)

PS. отсутствие нормального API для управления ATA контроллером и подключенными
устройствами было одной из причин написания вот этого.
Но оно пока еще сырое и на некотором железе сильно глючит.

--
Alter, http://alter.org.ua
--
Alter, http://alter.org.ua
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.