Я бегу на Windows 8.
Иногда, когда я возвращаюсь из спящего режима, мой сервис получает запрос на остановку через SCM (вызов SvcCtrlHandler
с SERVICE_CONTROL_STOP
). Я не смог отследить источник этого запроса. Может ли оно быть отправлено самой ОС, в каком-то сценарии?
Мои два основных подозрения прямо сейчас:
- Если событие возобновления (
SERVICE_CONTROL_POWEREVENT
типаPBT_APMRESUMEAUTOMATIC
) занимает слишком много времени, ОС может остановить службу (системные журналы содержат журналы, ссылающиеся на эту конкретную службу:A timeout was reached (30000 milliseconds) while waiting for the [...] The service did not respond to the start or control request in a timely fashion
) - Операционная система останавливает службу, потому что она была помечена как проблемная служба (системные журналы содержат журналы, относящиеся к этой конкретной службе:
service did not shut down properly after receiving a preshutdown control