Re[3]: Управление светодиодами на корпусе компьютера
От: gear nuke  
Дата: 25.03.10 01:46
Оценка: 3 (1)
Здравствуйте, power_led, Вы писали:

_>Вот несколько примеров, на подобную тематику:

_>http://www.notebookforums.com/thread110937.html
_>http://atticstory.narod.ru/LED/

_>Правда, как я понял, они только для ноутбуков Asus. Возможно это и не совсем так, но зато показан принцип того, что такое управление возможно.


ИМХО автор по второй ссылке немного фантазирует на счёт:
//Другие идентификаторы, которые на m50Sv не работают, но, возможно сработают на других ноутбуках

    #define    Power_LED 0x44454C00    // идентификатор диода Power

Если посмотреть на оригинал кода (первая ссылка) то становится понятно, что к Power_LED это число никакого отношения не имеет (по идее, дожно быть 0x44454c50)
#define MLED    0x44454c4d
#define TLED    0x44454c54
#define WLED    0x44454c57

#define LED    0x44454c00

/// ...

int main(int argc, char *argv[]) {
    int code = LED;
    int onoff;

    if (argc != 3) {
        fputs("usage: ",stderr);
        fputs(argv[0],stderr);
        fputs(" M|T|W 0|1\n",stderr);
        exit(1);
    }

    /* Open the Asus device driver. If it's not there,
       there's nothing we can do. */
    ATKACPIhandle = CreateFile("\\\\.\\ATKACPI",
        GENERIC_READ|GENERIC_WRITE,
        FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING,
        0, NULL);

    if (ATKACPIhandle) {
        code |= argv[1][0];
        onoff = argv[2][0] & 1;

        CtrlACPI(code, 1, onoff);
    }
}


_>Примеры кстати я собирал на своем компе (материнка Asus), надеялся что получиться, но увы. Разбираюсь и ищу дальше.


Попробуй брутфорс Промимо IOCTL 0x222404, ATKACPI похоже понимает еще 0x222400 и 0x222408 — зачем они, не разбирался, за порчу оборудования не отвечаю
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.