Причина изменения состояния службы на SERVICE_CONTROL_STOP. Если текущий код элемента управления не SERVICE_CONTROL_STOP, этот элемент игнорируется.
Для этого элемента необходимо задать сочетание одного общего кода, одного кода основной причины и одного незначительного кода причины.
Ниже приведены общие коды причин.
Значение
Значение
SERVICE_STOP_REASON_FLAG_CUSTOM
0x20000000
Код причины определяется пользователем. Если этот флаг отсутствует, код причины определяется системой. Если этот флаг указан с помощью системного кода причины, вызов функции завершается ошибкой.
Пользователи могут создавать настраиваемые коды основных причин в диапазоне SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM (0x00400000) по SERVICE_STOP_REASON_MAJOR_MAX_CUSTOM (0x00ff0000) и незначительные коды причин в диапазоне SERVICE_STOP_REASON_MINOR_MIN_CUSTOM (0x00000100) по SERVICE_STOP_REASON_MINOR_MAX_CUSTOM (0x0000FFFF).
SERVICE_STOP_REASON_FLAG_PLANNED
0x40000000
Запланирована остановка обслуживания.
SERVICE_STOP_REASON_FLAG_UNPLANNED
0x10000000
Остановка обслуживания не была запланирована.
Ниже приведены основные коды причин.
Значение
Значение
SERVICE_STOP_REASON_MAJOR_APPLICATION
0x00050000
Проблема с приложением.
SERVICE_STOP_REASON_MAJOR_HARDWARE
0x00020000
Проблема с оборудованием.
SERVICE_STOP_REASON_MAJOR_NONE
0x00060000
Никаких серьезных причин.
SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM
0x00030000
Проблема с операционной системой.
SERVICE_STOP_REASON_MAJOR_OTHER
0x00010000
Другая проблема.
SERVICE_STOP_REASON_MAJOR_SOFTWARE
0x00040000
Проблема с программным обеспечением.
Ниже приведены незначительные коды причин.
Значение
Значение
SERVICE_STOP_REASON_MINOR_DISK
0x00000008
(Краткосрочная защита с использованием:) и вариант "Диск".
Необязательная строка, которая предоставляет дополнительные сведения о остановке службы. Эта строка хранится в журнале событий вместе с кодом причины остановки. Этот элемент должен иметь значение NULL или допустимую строку длиной менее 128 символов, включая завершающий символ NULL.
ServiceStatus
Указатель на структуру SERVICE_STATUS_PROCESS , которая получает последние сведения о состоянии службы. Возвращаемые сведения отражают последнее состояние службы, которое служба сообщила диспетчеру управления службой.
Диспетчер элементов управления службами заполняет структуру, только если ControlServiceEx возвращает один из следующих кодов ошибок: NO_ERROR, ERROR_INVALID_SERVICE_CONTROL, ERROR_SERVICE_CANNOT_ACCEPT_CTRL или ERROR_SERVICE_NOT_ACTIVE. В противном случае структура не заполняется.
Комментарии
Примечание
Заголовок winsvc.h определяет SERVICE_CONTROL_STATUS_REASON_PARAMS как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование
Значение
Минимальная версия клиента
Windows Vista [только классические приложения]
Минимальная версия сервера
Windows Server 2008 [только классические приложения]