Форум: "WinAPI";
Текущий архив: 2007.12.30;
Скачать: [xml.tar.bz2];
Вниз
Остановка двигателя HDD Найти похожие ветки
← →
AndreyRus (2007-06-11 11:06) [0]Здравствуйте!
Известен ли кому нибудь способ остановки двигателя в жестком диске без использования DeviceIOControl?
← →
homm © (2007-06-11 11:11) [1]Сильный удар по корпусу.
← →
AndreyRus (2007-06-11 11:21) [2]
> Сильный удар по корпусу.
:)
Может функцией энергосбережения? Вот только какой... :(
← →
Dimaxx © (2007-06-14 10:10) [3]Выдернуть кабель питания. Или написать программу, которая будет выдергивать его автоматически. :)
← →
clickmaker © (2007-06-14 10:41) [4]
> Или написать программу, которая будет выдергивать его автоматически
нужно еще робота до кучи смастерить, который по этой программе...
← →
tesseract © (2007-06-14 11:06) [5]
> Известен ли кому нибудь способ остановки двигателя в жестком
> диске без использования DeviceIOControl?
ExitWindowsEx(EWX_SHUTDOWN or EWX_FORCE,SHTDN_REASON_FLAG_PLANNED );
← →
Игорь Шевченко © (2007-06-14 12:29) [6]SetSystemPowerState с предварительным определением политики электропитания или все-таки DeviceIOControl, если драйвер поддерживает установку режима электропитания вне зависимости от системной политики.
← →
AndreyRus (2007-06-14 13:31) [7]
> SetSystemPowerState с предварительным определением политики
> электропитания
Можно поподробнее за предварительную политику электропитания?
> или все-таки DeviceIOControl, если драйвер поддерживает
> установку режима электропитания вне зависимости от системной
> политики.
DeviceIOControl в купе с недокументированным кодом (2000, XP, XP SP1) и документированным (XP SP2, 2003, Vista) позволяет отправлять жесткому диску прямые ATA команды и соответственно проблем с остановкой двигателя нет. Проблема заключается в том, что в некоторых драйверах, вследствие их ущербности (nVidia, внешние контроллеры (S)ATA) такая возможность не реализована.
← →
homm © (2007-06-14 14:16) [8]> в некоторых драйверах, вследствие их ущербности (nVidia,
> внешние контроллеры (S)ATA) такая возможность не реализована.
Тоды только [1] или [3].
← →
tesseract © (2007-06-14 14:44) [9]
> соответственно проблем с остановкой двигателя нет
Проблема будет в том, что винда сильно удивиться ошибке отложенной записи на винт, который она считала сильно своим, и или запустит его снова, или сбросит шину по превышению ожидания, или покажет BSOD.
← →
AndreyRus (2007-06-14 15:05) [10]Windows знает, что винт может уснуть самостоятельно. C этим проблемы нет.
← →
tesseract © (2007-06-14 15:10) [11]
> Windows знает, что винт может уснуть самостоятельно.
Она сама его выключает, согласно правилам энергосбережения.
Если попытаешься вырубить его во время как идёт операция будет превышен интервал ожидания отложенной записи и винда подумает, что что-то не так. Или винт просто не выполнит операцию.
← →
AndreyRus (2007-06-14 15:22) [12]Проверено, правда не на всех драйверах, что проблемы нет. Драйвер, обнаружив остановку двигателя, делает попытки его раскрутить и продолжает запись/чтение. Time out не наблюдается.
> Она сама его выключает
Винт сам может уснуть если поддерживает APM (свое) и его значение меньше 128.
← →
tesseract © (2007-06-14 15:30) [13]
> Проверено, правда не на всех драйверах, что проблемы нет.
Ключевое слово не на всех драйверах. На встроенных да, чаще всего работает, на Promise например сильно удивляеться такому обороту событий.
← →
AndreyRus (2007-06-14 15:47) [14]Поэтому и нужен иной способ усыпления.
Дравер + IRP_MJ_POWER, IRP_MN_SET_POWER не подходит.
← →
AndreyRus (2007-06-16 02:37) [15]Почему?
← →
Германн © (2007-06-16 02:44) [16]
> AndreyRus (16.06.07 02:37) [15]
>
> Почему?
>
Эээ. Почему? А что именно почему?
:)
← →
AndreyRus (2007-06-16 10:57) [17]А потому что, а по тому что, ... ничего и никогда не делал в жизни сам. :)
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2007.12.30;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.006 c