Содержит параметры управления службой.
Синтаксис
typedef struct _SERVICE_CONTROL_STATUS_REASON_PARAMSA {
DWORD dwReason;
LPSTR pszComment;
SERVICE_STATUS_PROCESS ServiceStatus;
} SERVICE_CONTROL_STATUS_REASON_PARAMSA, *PSERVICE_CONTROL_STATUS_REASON_PARAMSA;
Члены
dwReason
Причина изменения состояния службы на 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
|
Диск.
|
-
SERVICE_STOP_REASON_MINOR_ENVIRONMENT
- 0x0000000a
|
Окружающая среда.
|
-
SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER
- 0x0000000b
|
Водитель.
|
-
SERVICE_STOP_REASON_MINOR_HUNG
- 0x00000006
|
Не реагирующий.
|
-
SERVICE_STOP_REASON_MINOR_INSTALLATION
- 0x00000003
|
Установка.
|
-
SERVICE_STOP_REASON_MINOR_MAINTENANCE
- 0x00000002
|
Содержание.
|
-
SERVICE_STOP_REASON_MINOR_MMC
- 0x00000016
|
Проблема MMC.
|
-
SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY
- 0x00000011
|
Сетевое подключение.
|
-
SERVICE_STOP_REASON_MINOR_NETWORKCARD
- 0x00000009
|
Сетевая карта.
|
-
SERVICE_STOP_REASON_MINOR_NONE
- 0x00060000
|
Нет незначительных причин.
|
-
SERVICE_STOP_REASON_MINOR_OTHER
- 0x00000001
|
Другая проблема.
|
-
SERVICE_STOP_REASON_MINOR_OTHERDRIVER
- 0x0000000c
|
Другое событие драйвера.
|
-
SERVICE_STOP_REASON_MINOR_RECONFIG
- 0x00000005
|
Перенастроить.
|
-
SERVICE_STOP_REASON_MINOR_SECURITY
- 0x00000010
|
Проблема безопасности.
|
-
SERVICE_STOP_REASON_MINOR_SECURITYFIX
- 0x0000000f
|
Обновление системы безопасности.
|
-
SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL
- 0x00000015
|
Удаление обновления системы безопасности.
|
-
SERVICE_STOP_REASON_MINOR_SERVICEPACK
- 0x0000000d
|
Пакет обновления.
|
-
SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL
- 0x00000013
|
Удаление пакета обновления.
|
-
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE
- 0x0000000e
|
Обновление программного обеспечения.
|
-
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL
- 0x0000000e
|
Удаление обновления программного обеспечения.
|
-
SERVICE_STOP_REASON_MINOR_UNSTABLE
- 0x00000007
|
Нестабильный.
|
-
SERVICE_STOP_REASON_MINOR_UPGRADE
- 0x00000004
|
Модернизировать.
|
-
SERVICE_STOP_REASON_MINOR_WMI
- 0x00000012
|
Проблема WMI.
|
pszComment
Необязательная строка, которая предоставляет дополнительные сведения о остановке службы. Эта строка хранится в журнале событий вместе с кодом причины остановки. Этот элемент должен быть значение 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 [только классические приложения] |
|
заголовка |
winsvc.h (включая Windows.h) |
См. также
ControlServiceEx
SERVICE_STATUS_PROCESS