Эмулятор RESET

Тема в разделе "WASM.WIN32", создана пользователем Stealth, 8 ноя 2005.

  1. Stealth

    Stealth New Member

    Публикаций:
    0
    Регистрация:
    8 ноя 2005
    Сообщения:
    3
    Подскажите, как программным способом перезагрузить компьютер с эффектом как после нажатия кнопки Reset (без WM_....ENDSESSION)?

    Здесь http://www.dinform.ru/kuban/htmls/public_htmls/2-6452.html это обсуждалось, предлагалось на ring0 вызвать ошибку в kernel-е, но работающего кода так и не сделали...

    Код такой очень нужен для перезагрузки удаленного и наполовину подвисшего после какой-нибудь "Недопустимой операции" Win98, т.к. обычное "Завершение работы" вызывает только полное зависание системы в этом случае, а доступа к физической кнопке Reset нету. Аналогов такого кода в инете, к сожалению, не нашел (поиском пользоваться умею). Хотя вещь очень нужная. Было бы здорово, если б такой код еще и под всеми виндами работал, но актуально в данный момент на самом деле только win98.
     
  2. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    из ring0:
    Код (Text):
    1.     mov    dx, 0CF9h
    2.     mov    al, 7
    3.     out    dx, al
     
  3. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    На NT есть обработчик hal!HalApicRebootService, который можно установить в ring-0 и вызывать из ring-3.
     
  4. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    Кстати, если Win9x, то прокатит и из ring3. Недостаток -- не все чипсеты поддерживают.



    [add] На том форуме ведь сказали про 0CF9h, чем не понравилось? [/add]
     
  5. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    Не нравится CF9h, можно так:
    Код (Text):
    1.     mov    al, 1
    2.     out    92h, al




    Также можно дедовским методом, через контроллер клавиатуры.
     
  6. Stealth

    Stealth New Member

    Публикаций:
    0
    Регистрация:
    8 ноя 2005
    Сообщения:
    3
    _BC_



    Тем, что только для чипсета Intel 82420EX.
     
  7. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    На деле этот метод сработает для многих чипсетов, включая и некоторые не-intel'овские.
     
  8. Stealth

    Stealth New Member

    Публикаций:
    0
    Регистрация:
    8 ноя 2005
    Сообщения:
    3
    дедовский метод через контроллер клавиатуры

    mov al,0FEh

    out 064h,al

    наверное самый надежный будет...