Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Остановка двигателя HDD


AndreyRus ©   (2007-06-11 11:06:00) 

Здравствуйте!
Известен ли кому нибудь способ остановки двигателя в жестком диске без использования DeviceIOControl?


AndreyRus   (2007-06-16 10:57:00) [1]

А потому что, а по тому что, ... ничего и никогда не делал в жизни сам. :)


Германн   (2007-06-16 02:44:00) [2]


> AndreyRus   (16.06.07 02:37) [15]
>
> Почему?
>

Эээ. Почему? А что именно почему?
:)


AndreyRus   (2007-06-16 02:37:00) [3]

Почему?


AndreyRus   (2007-06-14 15:47:00) [4]

Поэтому и нужен иной способ усыпления.
Дравер + IRP_MJ_POWER, IRP_MN_SET_POWER не подходит.


tesseract   (2007-06-14 15:30:00) [5]


> Проверено, правда не на всех драйверах, что проблемы нет.


Ключевое слово не на всех драйверах. На встроенных да, чаще всего работает, на Promise например сильно удивляеться такому обороту событий.


AndreyRus   (2007-06-14 15:22:00) [6]

Проверено, правда не на всех драйверах, что проблемы нет. Драйвер, обнаружив остановку двигателя, делает попытки его раскрутить и продолжает запись/чтение. Time out не наблюдается.

> Она сама его выключает
Винт сам может уснуть если поддерживает APM (свое) и его значение меньше 128.


tesseract   (2007-06-14 15:10:00) [7]


> Windows знает, что винт может уснуть самостоятельно.


Она сама его выключает, согласно правилам энергосбережения.
Если попытаешься вырубить его во время как идёт операция будет превышен интервал ожидания отложенной записи и винда подумает, что что-то не так. Или винт просто не выполнит операцию.


AndreyRus   (2007-06-14 15:05:00) [8]

Windows знает, что винт может уснуть самостоятельно. C этим проблемы нет.


tesseract   (2007-06-14 14:44:00) [9]


> соответственно проблем с остановкой двигателя нет


Проблема будет в том, что винда сильно удивиться ошибке отложенной записи на винт, который она считала сильно своим, и или запустит его снова, или сбросит шину по превышению ожидания, или покажет BSOD.


homm   (2007-06-14 14:16:00) [10]

> в некоторых драйверах, вследствие их ущербности (nVidia,
> внешние контроллеры (S)ATA) такая возможность не реализована.

Тоды только [1] или [3].


AndreyRus   (2007-06-14 13:31:00) [11]


> SetSystemPowerState с предварительным определением политики
> электропитания

Можно поподробнее за предварительную политику электропитания?

> или все-таки DeviceIOControl, если драйвер поддерживает
> установку режима электропитания вне зависимости от системной
> политики.

DeviceIOControl в купе с недокументированным кодом (2000, XP, XP SP1) и документированным (XP SP2, 2003, Vista) позволяет отправлять жесткому диску прямые ATA команды и соответственно проблем с остановкой двигателя нет. Проблема заключается в том, что в некоторых драйверах, вследствие их ущербности (nVidia, внешние контроллеры (S)ATA) такая возможность не реализована.


Игорь Шевченко   (2007-06-14 12:29:00) [12]

SetSystemPowerState с предварительным определением политики электропитания или все-таки DeviceIOControl, если драйвер поддерживает установку режима электропитания вне зависимости от системной политики.


tesseract   (2007-06-14 11:06:00) [13]


> Известен ли кому нибудь способ остановки двигателя в жестком
> диске без использования DeviceIOControl?


ExitWindowsEx(EWX_SHUTDOWN or EWX_FORCE,SHTDN_REASON_FLAG_PLANNED );


clickmaker   (2007-06-14 10:41:00) [14]


> Или написать программу, которая будет выдергивать его автоматически

нужно еще робота до кучи смастерить, который по этой программе...


Dimaxx   (2007-06-14 10:10:00) [15]

Выдернуть кабель питания. Или написать программу, которая будет выдергивать его автоматически. :)


AndreyRus   (2007-06-11 11:21:00) [16]


> Сильный удар по корпусу.

:)
Может функцией энергосбережения? Вот только какой... :(


homm   (2007-06-11 11:11:00) [17]

Сильный удар по корпусу.


Наверх

Титульная страница Поиск, карта сайта Написать письмо