Структура SERVICE_STATUS

Type SERVICE_STATUS
    dwServiceType As Long
    dwCurrentState As Long
    dwControlsAccepted As Long
    dwWin32ExitCode As Long
    dwServiceSpecificExitCode As Long
    dwCheckPoint As Long
    dwWaitHint As Long
End Type

Структура SERVICE_STATUS содержит информацию о службе

Состав структуры

dwServiceType
Тип службы. Может принимать одно из следующиз значений
SERVICE_FILE_SYSTEM_DRIVERСлужба является драйвером файловой системы
SERVICE_KERNEL_DRIVERСлужба является драйвером устройства
SERVICE_WIN32_OWN_PROCESS As Long = &H10Служба работает как отдельный процесс
SERVICE_WIN32_SHARE_PROCESS As Long = &H20Служба работает вместе с другими сервисами в рамках одного и того же процесса
dwCurrentState
Текущее состояние службы. Может принимать одно из следующих значение
SERVICE_CONTINUE_PENDING = &H5Служба начинает запускаться после временной остановки, но еще не работает
SERVICE_PAUSE_PENDING = &H6Служба начинает переход в состояние временной остановки, но еще не остановился
SERVICE_PAUSED = &H7Служба находится в состоянии временной остановки
SERVICE_RUNNING = &H4Служба работает
SERVICE_START_PENDING = &H2Служба находится в состоянии запуска, но еще не работает
SERVICE_STOP_PENDING = &H3Служба находится в состоянии остановки, но еще не остановился
SERVICE_STOPPED = &H1Служба остановлена
dwControlsAccepted
Команды, обрабатываемые службой. Ниже приведен список возможных значений
SERVICE_ACCEPT_NETBINDCHANGEThe service is a network component that can accept changes in its binding without being stopped and restarted. This control code allows the service to receive SERVICE_CONTROL_NETBINDADD, SERVICE_CONTROL_NETBINDREMOVE, SERVICE_CONTROL_NETBINDENABLE, and SERVICE_CONTROL_NETBINDDISABLE notifications.
SERVICE_ACCEPT_PARAMCHANGEThe service can reread its startup parameters without being stopped and restarted. This control code allows the service to receive SERVICE_CONTROL_PARAMCHANGE notifications.
SERVICE_ACCEPT_PAUSE_CONTINUE = &H2Команды временной остановки SERVICE_CONTROL_PAUSE и продолжения работы после временной остановки SERVICE_CONTROL_CONTINUE
SERVICE_ACCEPT_SHUTDOWN = &H4Служба получает уведомление при завершении работы операционной системы SERVICE_CONTROL_SHUTDOWN
SERVICE_ACCEPT_STOP = &H1Команда остановки сервиса SERVICE_CONTROL_STOP
dwWin32ExitCode
Определяет код ошибки WIN32, который используется для сообщения о возникновении ошибочной ситуации при запуске и остановки сервиса. Если в этом поле указать значение ERROR_SERVICE_SPECIFIC_ERROR, то будет использован специфический для данного сервиса код ошибки, указанной в поле dwServiceSpecificExitCode структуры SERVICE_STATUS. Если ошибки нет, в поле dwWin32ExitCode необходимо записать значение NO_ERROR
dwServiceSpecificExitCode
Используется в том случае, когда в поле dwWin32ExitCode указано значение ERROR_SERVICE_SPECIFIC_ERROR
dwCheckPoint
Это поле должно содержать значение, которое должно периодически увеличиваться при выполнении длительных операций запуска, остановки или продолжения работы после временной остановки. Если выполняются другие операции, в это поле необходимо записать нулевой значение
dwWaitHint
определяет ожидаемое время выполнения (в миллисекундах) длительной операции запуска, остановки или продолжения работы после временной остановки. Если за указанное время не изменится содержимое полей dwCheckPoint или dwCurrentState, процесс управления сервисами будет считать, что произошла ошибка

Используется в

ENUM_SERVICE_STATUS, QueryServiceStatus