DMA и PIO
От: Darth Maul  
Дата: 12.02.05 23:17
Оценка:
Всем привет!

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

С уважением Вернигора. А.В.
Posted via RSDN NNTP Server 1.9
Re: DMA и PIO
От: Darth Maul  
Дата: 12.02.05 23:51
Оценка:
Соответственно во всех системах начиная с Win95 и заканчивая XP
Posted via RSDN NNTP Server 1.9
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
Re[3]: DMA и PIO
От: Darth Maul  
Дата: 13.02.05 12:46
Оценка:
А вообще, есть доки по поводу того, как это можно зделать. Если не DeviceIoControl — то как иначе.
Posted via RSDN NNTP Server 1.9
Re[3]: DMA и PIO
От: Darth Maul  
Дата: 13.02.05 12:51
Оценка:
Вот, нашел некий исходник посылания команд. На основе него, повырезав, конечно всякий ввод-вывод, написал следующую шнягу. Но, вот, не пойму, работает оно или нет. У меня XPSP2. Мож кто чего подскажет?
Posted via RSDN NNTP Server 1.9
Re[3]: DMA и PIO
От: Darth Maul  
Дата: 13.02.05 12:57
Оценка:
Через NNTP не вышло, можно попробовать взять тут
http://www.rsdn.ru/File/38278/drvTST.rar
Posted via RSDN NNTP Server 1.9
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.