![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Остановка двигателя 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]Сильный удар по корпусу.