Остановка служб


Пользователь может остановить службу утилитой Панель управления службами. Программа управления сервисом может остановить службу при помощи функции ControlService, отправляя запрос SERVICE_CONTROL_STOP службе через посредство диспетчера управления службами (SCM).

Если диспетчер управления службами (SCM) получает для службы запрос SERVICE_CONTROL_STOP, то это предписывает службе останов при помощи переадресовки кода остановки в сервисную функцию ServiceMain. Однако, если диспетчер управления службами (SCM) выясняет, что другие службы, которые являются запущенными, зависят от указанного сервиса, он не переадресовывает запрос на останов. Вместо этого, он возвращает  код ошибки ERROR_DEPENDENT_SERVICES_RUNNING

Чтобы программно остановить службу с зависимыми сервисами, Вы должны сначала перечислить и остановить зависимые от него службы. Типовой код, который демонстрирует, как использовать функцию EnumDependentServices, чтобы остановить службу, см. в статье Остановка службы в разделе использование служб.

 

Назад в оглавление
На главную страницу

Hosted by uCoz