Ну, я недавно занимался разработкой драйверов, поэтому я решил создать класс для программного запуска сервисов. Но, конечно, я столкнулся с некоторыми неприятностями по дороге, как обычно.Запуск службы?
Я использую StartService, чтобы запустить его, но по какой-то причине он просто зависает, я провел некоторое исследование через Интернет, и, похоже, он ждет от функции ServiceMain, чтобы сообщить диспетчеру управления, что служба успешно инициализирован и теперь запущен.
Проблема в том, что ничего не работает, я инициализировал функцию ServiceMain с помощью StartServiceCtrlDispatcher(), но она никогда не кажется вызванной, я вставил некоторый код в функцию servicemain, чтобы убедиться, что он вызван, и это не по какой-то нечетной причине.
Я удостоверился, что никакая другая функция процесса не сработала, CreateService возвращает успех, как и OpenService, но как только я доберусь до StartService, он зависает, и единственный способ, с помощью которого я позвоню StartService снова после перезагрузки.
Итак, я думаю, что я прошу, если есть какие-либо простые объяснения, как я могу это исправить, может быть, какой-то код, если вы, ребята, не возражаете.
Заранее спасибо. Очень ценится.
Вы действительно разрабатываете услугу или просто программу для запуска службы? Если вы разрабатываете услугу, то, похоже, ваша проблема существует (не в другой программе, которая вызывает StartService). Как только служба будет установлена, что произойдет, если вы попытаетесь запустить ее через Служебную часть панели управления? – TheUndeadFish
Да, я занимаюсь разработкой службы, но сейчас все, что она делает, печатает сообщение отладчику, и я смог зарегистрироваться и запустить его с помощью OSRloader. Я не уверен, что для самой службы в ней есть что-то, чтобы работать, но сейчас она имеет только функцию-драйвер. – David