| Предыдущий | Следующий |
| ERROR_DEPENDENT_SERVICES_RUNNING | ERROR_SERVICE_REQUEST_TIMEOUT |
ERROR_INVALID_SERVICE_CONTROL
Служба не принимает запрошенную команду управления
Служба сообщает принимаемые команды через SERVICE_STATUS, а обработчик управления выполняет соответствующие запросы SCM. Все службы должны поддерживать опрос состояния, но stop, pause/continue, shutdown и другие команды зависят от контракта службы и её текущего состояния.
До отправки команды запросите состояние службы и проверьте dwControlsAccepted. Клиент не должен предполагать, что любую работающую службу можно приостановить или остановить. Пользовательские коды управления также требуют права SERVICE_USER_DEFINED_CONTROL и значения в документированном пользовательском диапазоне. На стороне службы обновляйте принимаемые команды при изменении состояния и не блокируйте обработчик; команда, допустимая в рабочем состоянии, может быть неподходящей во время START_PENDING или STOP_PENDING.
Что проверить
- Запросите SERVICE_STATUS_PROCESS и проверьте dwControlsAccepted.
- Сопоставьте код управления с состоянием службы и документированным поведением обработчика.
- Для пользовательских команд проверьте права доступа и пользовательский диапазон кодов.
Ссылки
- Microsoft: функция обработчика управления службой
- Microsoft: ControlService
- Microsoft: QueryServiceStatusEx
Нужно найти другой код? Найти другой код состояния или ошибки.