Как заставить винчестер остановиться?

Тема в разделе "WASM.WIN32", создана пользователем Ivan_d, 27 янв 2007.

  1. Ivan_d

    Ivan_d New Member

    Публикаций:
    0
    Регистрация:
    9 янв 2007
    Сообщения:
    27
    Можно ли честным системным способом заставить нужный мне винчестер остановиться (standby), и чтобы он становился для системы недоступным. И, соотвествеенно, когда понадобится включать его заново.
     
  2. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Код ms-rem для отключения HDD:
    Код (Text):
    1. asm
    2.   mov al, $0E6
    3.   mov dx, $1F7
    4.   out dx, al
    5.   ret
    6. end;
     
  3. Ivan_d

    Ivan_d New Member

    Публикаций:
    0
    Регистрация:
    9 янв 2007
    Сообщения:
    27
    А честными системными методами? А не в лоб?
     
  4. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Ivan_d
    Это функции БИОСА, а системе нефиг там делать...
     
  5. SnugForce

    SnugForce New Member

    Публикаций:
    0
    Регистрация:
    2 май 2005
    Сообщения:
    373
    Адрес:
    Из домУ
    Twister
    А включение как?
     
  6. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Может он подскажет...
     
  7. W4FhLF

    W4FhLF New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1.050
    Странное отключение, под варей драйвер с этим кодом нормально отработал и никакой реакции.
     
  8. lukash

    lukash New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2006
    Сообщения:
    142
    E6h это Sleep.
    А есть еще
    Standby E2h
    и
    Standby immediate E0h

     
  9. Ivan_d

    Ivan_d New Member

    Публикаций:
    0
    Регистрация:
    9 янв 2007
    Сообщения:
    27
    На сколько я помню, после команды sleep (а может standby, уже не помню) шпиндель останавливается, а головки паркуются до первого обращения к нему, либо по сигналу ресет.

    Вопрос в том, как грамотно отобрать у системы заданное устройство (допустим Primary Master) и послать ему этот код sleep или standby
     
  10. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    выключить диск:
    MSDN -> Device Class Power Management Reference Specification -> Storage and Related Peripherals" -> chapter 4 -> power management requirements for disk drives

    блокировать чтобы вдруг не включился
    FSCTL_LOCK_VOLUME
    FSCTL_DISMOUNT_VOLUME
    (и не завершать процесс, а то разблоикруется :derisive:
     
  11. Ivan_d

    Ivan_d New Member

    Публикаций:
    0
    Регистрация:
    9 янв 2007
    Сообщения:
    27
    Пасиба, поэксперементирую
     
  12. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    порты ввода/вывода лучше не трогать по нескольким причинам.
    1) растет кол-во SCSI/RAID и всякой прочей нечисти, включая USB->HDD,
    управляемых своими драйврами, о которых знает система, но не знаешь ты ;)

    2) попытка управления одним HDD из двух драйверов
    (его родного драйвера и твоего) может очень сильно аукнуться,
    особенно если родной драйер не подозревает, что в системе
    есть кто-то еще.

    если ты хочешь передавать винту ATA-команды,
    делай это через SCSIOP_ATA_PASSTHROUGH (CCh)
    никто же не запрещает ;) причем с прикладного уровня,
    но с правами админа. если хочешь, могу скинуть
    программу, которая именно этим и занимается.
     
  13. Ivan_d

    Ivan_d New Member

    Публикаций:
    0
    Регистрация:
    9 янв 2007
    Сообщения:
    27
    Хочу :)
     
  14. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
  15. Ivan_d

    Ivan_d New Member

    Публикаций:
    0
    Регистрация:
    9 янв 2007
    Сообщения:
    27
    Пасибушки, буду разбирацца...
     
  16. Ivan_d

    Ivan_d New Member

    Публикаций:
    0
    Регистрация:
    9 янв 2007
    Сообщения:
    27
    То ли я совсем MSDN'ом пользоваться не умею, то ли у меня не то (2003 года, от Visual Studio Net), но таких глав я не нашел. Гуглил по всему нету, и все равно не нашел :-(
     
  17. HCode

    HCode New Member

    Публикаций:
    0
    Регистрация:
    21 янв 2006
    Сообщения:
    72
    Солидарен.
    Видать kaspersky что-то попутал. :)
    Очень жаль, хотелось бы поэкспериментировать.
    У меня 3 винта, два из них для архивов.
    Обращаюсь к ним редко, но шумят они постоянно. :dntknw:
     
  18. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    crypto
    с каких пор in/out считаются BIOSом?)
     
  19. HCode

    HCode New Member

    Публикаций:
    0
    Регистрация:
    21 янв 2006
    Сообщения:
    72
    +1