Re[2]: Автозапуск сервиса при загрузке системы
От: Bariy  
Дата: 28.03.06 05:23
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Если сервис фактически зависит от NDIS и специализированного драйвера — почему эти зависимости не указаны явно? Как иначе система догадается, что с запуском сервиса нужно подождать, пока не будет активирована подсистема NDIS и загружен специализированный драйвер?


Я пробовал, но это не дает результатов. Система NDIS имее свою группу => она (эта группа) загружается раньше всех сервисов, которые не входят ни в какую группу. Специализированный драйвер явно зависит от NDIS, это прописано, его тип запуска — авто. Я ставил зависимость от драйвера, тоже не помогает. После загрузки специализированный драйвер запущен, мой сервис вообще молчит. Тут же запускаю его вручную (net start xmysrv) и все работает...

B>>Каким образом можно оттрассировать процесс запуска сервиса при загрузке и узнать причину подобного поведения?


ЕМ>Обеспечив отладочный вывод (OutputDebugString) и просматривая его любым системным отладчиком (WinDbg, SoftICE) или же утилитой DebugView (sysinternals). Или хоть в файл лог писать.

Насколько я понимаю отладочный вывод надо обеспечивать в коде сервиса, а как же я его обеспечу, если сервис (допустим) вылетает на первой строчке кода.
Необходим метод, который бы перехватил управление процессом, который создает SCM для запуска сервиса.

ЕМ>То, что система будет ждать 30 секунд, отнюдь не мешает ей продолжать запускать все остальные сервисы. Это весьма асинхронный процесс, причем в XP он гораздо более асинхронный, чем в 2k, отчего многие не совсем правильные драйверы/сервисы под XP потребовали доработки


А все-таки, как будет вести сетя система, если сервис при автозапуске вылетает на первой строчке кода... Неужели тупо ждать пока хендлер пошлет SERVICE_START_PENDING...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.