Victor_VG
Tracker Mod | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору oshizelly Нет, это разные по смыслу команды. Демон (служба, сервис - в разных ОС резидентный системный модуль зовётся по разному) имеет различные команды управления. В наборе команд SCM мы видим ряд разных команд задаваемых флагами параметров, в этом списке: SERVICE_STOPPED, SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING, SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING, SERVICE_PAUSED, SEVICE_QUERY_STATUS, SERVICE_INSTALL, SERVICE_DELETE, SERVICE_STOP, SERVICE_START, SERVICE_CONFIGURE (она обрабатывается только самим SCM, в демоны эта команда не передаётся), и каждая из них выполняет свою функцию. У большинства демонов реализованы обратно-парные команды SERVICE_STOP и SERVICE_START, для некоторых допустимы команды SERVICE_PAUSED и обратно-парная ей SERVICE_CONTINUE, но команды START_PENDING, SERVICE_STOP_PENDING, SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING, SERVICE_PAUSED реализуются редко поскольку их реализация зачастую связана с техническими сложностями и как следствие может привести к нестабильности ОС в целом. А для того демона про который мы говорим реализованы только команды SERVICE_START и SERVICE_STOP. И поэтому когда через РЕ была выдана ошибочная команда он послал её в демон без проверки её реализованности что в итоге привело к его неопределённому состоянию и сбою ядра. Кстати, этот сбой судя по тому что я видел в памяти SCM под отладчиком на стенде должен был в итоге привести к аварийной перезагрузке ОС т.к. в области векторов прерываний по адресам 0х00000000 - 0x0000ffff процесса services.exe оказался записан мусор, что неминуемо приводит к его сбою, и как последствие к панике ядра (BSoD) в целом. В то же время более простой системный Task Manager поступил в этом случае более грамотно - позвал функцию WinAPI KillProcess() которая просто аварийно завершила работу процесса dwm.exe. И реакция системы в таком случае зависит от настройки обработчика ошибок SCM - ничего не предпринимать (по умолчанию), перезапуск демона, аварийная перезагрузка ОС.
---------- Жив курилка! (Р. Ролан, "Кола Брюньон") Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti |
|