Shutdown under kernel driver ?
От: AlexVS Россия  
Дата: 20.03.02 03:33
Оценка:
Как из драйвера уровня ядра на w2k корректно выполнить shutdown ?

P.S.
Рубить питание умею, но это не правильно.
Re: Shutdown under kernel driver ?
От: Alex Fedotov США  
Дата: 20.03.02 04:28
Оценка:
Здравствуйте AlexVS, Вы писали:

AVS>Как из драйвера уровня ядра на w2k корректно выполнить shutdown ?


Документированного способа нет.

Если это не останавливает, я бы начал с дизассемблирования InitiateSystemShutdown. Она скорее всего пишет сообщение в какой-то pipe. В kernel-mode повторить такую же последовательность действий вполне реально. А как разберешься, статью нам про это напишешь
-- Alex Fedotov
Re: Shutdown under kernel driver ?
От: Windoze  
Дата: 20.03.02 06:24
Оценка:
Здравствуйте AlexVS, Вы писали:

AVS>Как из драйвера уровня ядра на w2k корректно выполнить shutdown ? :???:


AVS>P.S.

AVS>Рубить питание умею, но это не правильно.

А чем тебе не подходит ExitWindows(...)?
Re[2]: Shutdown under kernel driver ?
От: AlexVS Россия  
Дата: 20.03.02 06:34
Оценка:
Здравствуйте Windoze, Вы писали:


AVS>>Как из драйвера уровня ядра на w2k корректно выполнить shutdown ? :???:



W>А чем тебе не подходит ExitWindows(...)?


В "NativeApi" такой функции нет.
Re[3]: Shutdown under kernel driver ?
От: Alex Fedotov США  
Дата: 20.03.02 07:10
Оценка:
Здравствуйте AlexVS, Вы писали:

W>>А чем тебе не подходит ExitWindows(...)?


AVS>В "NativeApi" такой функции нет.


А чем не нравится по-нормальному сделать? Сделать службу, которая будет следить за командами драйвера и в нужный момент аккуратно остановит систему?
-- Alex Fedotov
Re[4]: Shutdown under kernel driver ?
От: AlexVS Россия  
Дата: 20.03.02 07:26
Оценка:
Здравствуйте Alex Fedotov, Вы писали:

AF>Здравствуйте AlexVS, Вы писали:


W>>>А чем тебе не подходит ExitWindows(...)?


AVS>>В "NativeApi" такой функции нет.


AF>А чем не нравится по-нормальному сделать? Сделать службу, которая будет следить за командами драйвера и в нужный момент аккуратно остановит систему?


Да, верно. Можно и так. Я просто хотел все в драйвере сделать.
Re[5]: Shutdown under kernel driver ?
От: Gambler  
Дата: 20.03.02 08:51
Оценка:
Здравствуйте AlexVS, Вы писали:

AVS>Здравствуйте Alex Fedotov, Вы писали:


AF>>Здравствуйте AlexVS, Вы писали:


W>>>>А чем тебе не подходит ExitWindows(...)?


AVS>>>В "NativeApi" такой функции нет.


AF>>А чем не нравится по-нормальному сделать? Сделать службу, которая будет следить за командами драйвера и в нужный момент аккуратно остановит систему?


AVS>Да, верно. Можно и так. Я просто хотел все в драйвере сделать.


А ты открой в дизассемблере user32.dll и посмотри, что там ExitWindows(...) делает, может что и найдёшь. У меня w32dasm вылетает при попытке user32.dll загрузить, так что ничем помочь не могу.
-------------------------------------------------------------------

Вызывает презедент к себе коров и говорит:
— Ну, что будем сдавать, молоко или мясо?
(с) Г. Явлинский TV6 — Герой дня (18.04.2002)
Re: Shutdown under kernel driver ?
От: ServerMouse Беларусь  
Дата: 20.03.02 10:48
Оценка:
Здравствуйте AlexVS, Вы писали:

AVS>P.S.

AVS>Рубить питание умею, но это не правильно.

А как? Мне под DOS-ом надо вырубить...
Если человек программист, то это надолго.
Re[2]: Shutdown under kernel driver ?
От: AlexVS Россия  
Дата: 20.03.02 10:56
Оценка:
Здравствуйте ServerMouse, Вы писали:

SM>Здравствуйте AlexVS, Вы писали:


AVS>>P.S.

AVS>>Рубить питание умею, но это не правильно.

SM>А как? Мне под DOS-ом надо вырубить...


Оно чипсетозависимое.
Для моего VIA VT82C686A South Bridge такая функция:

void PowerOff(void)
{
DWORD val,base;

// Power Management I/O Base
outportq(0xcf8,0x80003C48);
base=inportq(0xcf8+4)&0x0000fffe;
val=inportq(base+4);
// bits 12-10: 010 Suspend to Disk (STD) (also called Soft Off).
val&=(0xe3<<8);
val|=(0x08<<8);
outportq(base+4,val);
val=inportq(base+4);
// bit 13=1: SLP_EN
val|=(0x20<<8);
outportq(base+4,val);
}
Re[3]: Shutdown under kernel driver ?
От: Alex Fedotov США  
Дата: 20.03.02 18:10
Оценка:
Здравствуйте AlexVS, Вы писали:

AVS>>>P.S.

AVS>>>Рубить питание умею, но это не правильно.

SM>>А как? Мне под DOS-ом надо вырубить...


AVS>Оно чипсетозависимое.

AVS>Для моего VIA VT82C686A South Bridge такая функция:

AVS>void PowerOff(void)

AVS>{
AVS>DWORD val,base;

AVS> // Power Management I/O Base

AVS> outportq(0xcf8,0x80003C48);
AVS> base=inportq(0xcf8+4)&0x0000fffe;
AVS> val=inportq(base+4);
AVS> // bits 12-10: 010 Suspend to Disk (STD) (also called Soft Off).
AVS> val&=(0xe3<<8);
AVS> val|=(0x08<<8);
AVS> outportq(base+4,val);
AVS> val=inportq(base+4);
AVS> // bit 13=1: SLP_EN
AVS> val|=(0x20<<8);
AVS> outportq(base+4,val);
AVS>}

О как. Так может тебе тогда ZwShutdownSystem
Автор: Alex Fedotov
Дата: 06.12.01
подойдет? User-mode процессы она убивает сразу, а вот драйвера корректно завершает.
-- Alex Fedotov
Re[4]: Shutdown under kernel driver ?
От: AlexVS Россия  
Дата: 21.03.02 03:56
Оценка:
Здравствуйте Alex Fedotov, Вы писали:

AF>Здравствуйте AlexVS, Вы писали:


AVS>>>>P.S.

AVS>>>>Рубить питание умею, но это не правильно.

SM>>>А как? Мне под DOS-ом надо вырубить...


[skip]

AF>О как. Так может тебе тогда ZwShutdownSystem
Автор: Alex Fedotov
Дата: 06.12.01
подойдет? User-mode процессы она убивает сразу, а вот драйвера корректно завершает.


Оно ! Именно это я и искал. Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.