Display Power State

Тема в разделе "WASM.WIN32", создана пользователем Cardinale, 22 фев 2005.

  1. Cardinale

    Cardinale New Member

    Публикаций:
    0
    Регистрация:
    22 фев 2005
    Сообщения:
    2
    Адрес:
    Simfy
    Не подскажете как определить сабж под win2k?
     
  2. Cardinale

    Cardinale New Member

    Публикаций:
    0
    Регистрация:
    22 фев 2005
    Сообщения:
    2
    Адрес:
    Simfy
    Добавлю еще информации, вдруг у кого-то найдется идея.



    Собственно в данном вопросе интересует отправила или не отправила винда монитор спать. Из юзер моды отправить монитор спать можно отправив месседж WM_SYSCOMMAND с wParam = SC_MONITORPOWER и lParam указывающим на нужное состояние. Пробовал цеплять на этот месседж хук, винда не посылает его. Тогда, решил попробовать на уровне кернел мод через прерывания. В стандарте VESF есть функция



    VESA VBE/PM (Power Management) v1.0+ - GET DISPLAY POWER STATE

    AX = 4F10h

    BL = 02h

    Return:AL = 4Fh if function supported

    AH = call status

    00h successful

    BH = current power state (see #0089)

    else failed



    Для реализации воспользовался апишной функцией VideoPortInt10, но на любой вызов появлялся любимый экран смерти.



    Здесь на форуме как-то тоже шла речь об выключении/включении питания, предложили



    ;ето ево гасит, монитор

    seg000:0157 mov dx, 3D4h

    seg000:015A mov al, 17h

    seg000:015C out dx, al

    seg000:015D inc dx

    seg000:015E in al, dx

    seg000:015F and al, 7Fh

    seg000:0161 out dx, al



    а вот возможно ли аналогичным способом проверить состояние или все-таки лучше попробовать через посылку IRP_MN_QUERY_POWER?

    Заранее благодарен за любые конструктивные предложения