Структура SERVICE_STATUS_PROCESS


Структура SERVICE_STATUS_PROCESS имеет в своем составе информацию о службе. Функции EnumServicesStatusEx и QueryServiceStatusEx используют эту структуру, чтобы возвратить  информацию о службе.

Синтаксис

typedef struct _SERVICE_STATUS_PROCESS {
  DWORD dwServiceType;
  DWORD dwCurrentState;
  DWORD dwControlsAccepted;
  DWORD dwWin32ExitCode;
  DWORD dwServiceSpecificExitCode;
  DWORD dwCheckPoint;
  DWORD dwWaitHint;
  DWORD dwProcessId;
  DWORD dwServiceFlags;
} SERVICE_STATUS_PROCESS, 
*LPSERVICE_STATUS_PROCESS;

Члены структуры

dwServiceType

Тип службы. Этот член структуры может быть одним из следующих значений.

Значение Предназначение
SERVICE_FILE_SYSTEM_DRIVER Служба является драйвером файловой системы.
SERVICE_KERNEL_DRIVER Служба - драйвер устройства.
SERVICE_WIN32_OWN_PROCESS Служба работает в своем собственном процессе.
SERVICE_WIN32_SHARE_PROCESS Служба совместно использует процесс с другими службами.

Если тип службы является или SERVICE_WIN32_OWN_PROCESS, или SERVICE_WIN32_SHARE_PROCESS, и служба запускается в контексте учетной записи LocalSystem, то может также определяться и следующий тип.

Значение Предназначение
SERVICE_INTERACTIVE_PROCESS Служба может взаимодействовать с рабочим столом.

Дополнительную информацию смотри в статье Диалоговые службы.

dwCurrentState

Текущее состояние службы. Этот член структуры может быть одним из следующих значений.

Значение Предназначение
SERVICE_STOPPED Служба является не работающей.
SERVICE_START_PENDING Служба является запущенной.
SERVICE_STOP_PENDING Служба является остановленной.
SERVICE_RUNNING Служба является работающей.
SERVICE_CONTINUE_PENDING Служба продолжает ожидать.
SERVICE_PAUSE_PENDING Приостановленная служба является ожидающей.
SERVICE_PAUSED Служба является приостановленной.
dwControlsAccepted

Управляющие коды служба принимает и обрабатывает в своем обработчике функции (см. Handler и HandlerEx). Процесс пользовательского интерфейса может управлять службой, задавая команду управления в функции ControlService. По умолчанию, все службы принимают значение SERVICE_CONTROL_INTERROGATE.

Ниже следуют управляющие коды.

Управляющий код Предназначение
SERVICE_ACCEPT_NETBINDCHANGE Служба - сетевой компонент, который может принять изменения в своем связывании, не останавливаясь и не перезапускаясь.

Этот управляющий код позволяет службе получать уведомления  SERVICE_CONTROL_NETBINDADD, SERVICE_CONTROL_NETBINDREMOVE, SERVICE_CONTROL_NETBINDENABLE и SERVICE_CONTROL_NETBINDDISABLE.

Windows NT:  Это значение не поддерживается.
SERVICE_ACCEPT_PARAMCHANGE Служба может перечитать свои параметры запуска, не останавливаясь и не перезапускаясь.

Этот управляющий код позволяет службе получать уведомления  SERVICE_CONTROL_PARAMCHANGE.

Windows NT:  Это значение не поддерживается.
SERVICE_ACCEPT_PAUSE_CONTINUE Служба может быть приостановлена и продолжить работу.

Этот управляющий код позволяет службе получать уведомления  SERVICE_CONTROL_PAUSE и SERVICE_CONTROL_CONTINUE.

SERVICE_ACCEPT_SHUTDOWN Служба уведомляется, когда происходит завершение работы системы.

Этот управляющий код позволяет службе получать уведомления  SERVICE_CONTROL_SHUTDOWN.

Обратите внимание! на то, что это ControlService не может отправить это уведомление; только система может отправить его.
SERVICE_ACCEPT_STOP Служба может остановиться.

Этот управляющий код позволяет службе получать уведомления  SERVICE_CONTROL_STOP.

Это значение может также иметь в своем составе и следующие расширенные управляющие коды, которые поддерживаются только HandlerEx. (Обратите внимание! на то, что, что эти управляющие коды нельзя отправить ControlService).

 

Управляющий код Предназначение
SERVICE_ACCEPT_HARDWAREPROFILECHANGE Служба уведомляется, когда профиль аппаратных средств компьютера изменился. Это дает возможность системе отправить уведомления SERVICE_CONTROL_HARDWAREPROFILECHANGE службе.

Windows NT:  Это значение не поддерживается.

SERVICE_ACCEPT_POWEREVENT Служба уведомляется, когда состояние электропитания компьютера изменилось. Это дает возможность системе отправить уведомления SERVICE_CONTROL_POWEREVENT службе.

Windows NT:  Это значение не поддерживается.

SERVICE_ACCEPT_SESSIONCHANGE Служба уведомляется, когда состояние сессии компьютера изменилось. Это дает возможность системе отправить уведомления SERVICE_CONTROL_SESSIONCHANGE службе.

Windows 2000/NT:  Это значение не поддерживается.

dwWin32ExitCode

Код ошибки, который служба использует, чтобы сообщить об ошибке, которая происходит тогда, когда она запускается или останавливается. Чтобы возвратить код ошибки, который определен службе, служба должна установить это значение в ERROR_SERVICE_SPECIFIC_ERROR, указывая, что член структуры dwServiceSpecificExitCode имеет в своем составе код ошибки. Служба должна установить это значение в NO_ERROR, когда она запускается и после нормального завершения.

dwServiceSpecificExitCode

Специальный для службы код ошибки, который служба возвращает, когда происходит ошибка в то время как служба запускается или останавливается. Это значение игнорируется, если член структуры dwWin32ExitCode не устанавливается в ERROR_SERVICE_SPECIFIC_ERROR.

dwCheckPoint

Значение контрольной точки службы периодически увеличивается на единицу, чтобы сообщить о своем продвижении в ходе длинного запуска, остановки, паузы или продолжения операции. Например, служба должна увеличивать это значение, поскольку она завершает каждого шага своей инициализации, когда она запускается. Пользовательский интерфейс программы, которая вызывала процедуру службы, использует это значение, чтобы отследить продвижение службы в ходе длинной операции. Это значение не действительно и должно быть нулем тогда, когда служба не запускается, не останавливается, не делает паузу или операция продолжает ожидать.

dwWaitHint

Предполагаемое время, требуемое для ожидания пуска, остановки, паузы или операции ожидания продолжения, в миллисекундах. Прежде, чем указанное время истечет, служба должна сделать свой следующий вызов функции SetServiceStatus или с увеличенным значением dwCheckPoint, или с изменением в dwCurrentState. Если время, заданное при передаче параметров dwWaitHint и dwCheckPoint не было увеличено, или параметр dwCurrentState не изменился, диспетчер управления службами или программа управления службой могут предположить, что произошла ошибка и служба должна быть остановлена.

dwProcessId

Идентификатор процесса (PID) службы.

dwServiceFlags

Этот член структуры может быть одним из следующих значений.

Значение Предназначение
0 Служба работает в процессе, который не системный процесс, или она не запускается.

Если служба работает в процессе, который не системный процесс, dwProcessId является ненулевым. Если служба не запускается, dwProcessId - нуль.

SERVICE_RUNS_IN_SYSTEM_PROCESS Служба работает в системном процессе, который должен всегда запускаться.

Смотри также

Обзор Службы, Структуры, используемые службами, EnumServicesStatusEx, QueryServiceStatusEx

Размещение и совместимость SERVICE_STATUS_PROCESS

К Windows XP Да 
л Windows 2000 Professional Да
и Windows NT Нет
е Windows Me Да
н Windows 98 Да
т Windows 95 Да
 
С Windows Server 2003 Да
е Windows 2000 Server Да
р Windows NT Server Нет 
в    
е    
р    
Используемая библиотека -
Используемая DLL -
 Заголовочный файл  
- объявлено в Winsvc.h
 - включено в Windows.h
 Unicode Нет
 Замечания по платформе Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz