Запросы на управление службами
Для отправки запросов управления в запущенную службу программа управления службами использует функцию ControlService. Эта функция задает значение элемента управления, передаваемое в функцию HandlerEx указанной службы. Это значение элемента управления может быть определяемым пользователем кодом или одним из стандартных кодов, позволяющих вызывающей программе выполнять следующие действия:
- Остановка службы (SERVICE_CONTROL_STOP).
- Приостановка службы (SERVICE_CONTROL_PAUSE).
- Возобновление выполнения приостановленной службы (SERVICE_CONTROL_CONTINUE).
- Получение обновленных сведений о состоянии из службы (SERVICE_CONTROL_INTERROGATE).
Каждая служба задает значения элемента управления, которые будут приниматься и обрабатываться. Чтобы определить, какие из стандартных значений элементов управления принимаются службой, используйте функцию QueryServiceStatusEx или укажите значение элемента управления SERVICE_CONTROL_INTERROGATE в вызове функции ControlService. Элемент dwControlsAccepted структуры SERVICE_STATUS, возвращаемой этими функциями, указывает, может ли служба быть остановлена, приостановлена или возобновлена. Все службы принимают значение элемента управления SERVICE_CONTROL_INTERROGATE.
Функция QueryServiceStatusEx сообщает последнее состояние указанной службы, но не получает обновленное состояние от самой службы. Использование значения элемента управления SERVICE_CONTROL_INTERROGATE в вызове ControlService гарантирует, что возвращаемые сведения о состоянии являются текущими.
Связанные разделы