На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

ControlService



The ControlService function sends a control code to a Win32 service.

BOOL ControlService(

SC_HANDLE hService, // handle to service
DWORD dwControl, // control code
LPSERVICE_STATUS lpServiceStatus // pointer to service status structure
);


Parameters

hService

Identifies the service. This handle is returned by the OpenService or CreateService function. The access required for this handle depends on the dwControl
code requested.

dwControl

Specifies the requested control code. This value can be one of the standard control codes in the table, or it can be a user-defined control code in the range of 128 to 255, inclusive. For user-defined control codes, the hService handle must have SERVICE_USER_DEFINED_CONTROL access, and the service defines the action associated with the control code.

Value Meaning
SERVICE_CONTROL_STOP
Requests the service to stop. The hService handle must have SERVICE_STOP access.
SERVICE_CONTROL_PAUSE
Requests the service to pause. The hService handle must have SERVICE_PAUSE_CONTINUE access.
SERVICE_CONTROL_CONTINUE
Requests the paused service to resume. The hService handle must have SERVICE_PAUSE_CONTINUE access.
SERVICE_CONTROL_INTERROGATE
Requests the service to update immediately its current status information to the service control manager. The hService handle must have SERVICE_INTERROGATE access.
SERVICE_CONTROL_SHUTDOWN
The ControlService function fails if this control code is specified.


lpServiceStatus

Points to a SERVICE_STATUS structure where the latest status information of the service is returned. The information returned reflects the most recent status reported by the service to the service control manager.



Return Values

If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.

Errors

The following error codes may be set by the service control manager. Other error codes may be set by the registry functions that are called by the service control manager.

Value Meaning
ERROR_ACCESS_DENIED
The specified handle was not opened with the necessary access.
ERROR_DEPENDENT_SERVICES_RUNNING
The service cannot be stopped because other running services are dependent on it.
ERROR_INVALID_SERVICE_CONTROL
The requested control code is not valid, or it is unacceptable to the service.
ERROR_SERVICE_CANNOT_ACCEPT_CTRL
The requested control code cannot be sent to the service because the state of the service is SERVICE_STOPPED, SERVICE_START_PENDING, or SERVICE_STOP_PENDING.
ERROR_SERVICE_NOT_ACTIVE
The service has not been started.
ERROR_SERVICE_REQUEST_TIMEOUT
The service did not respond to the start request in a timely fashion.


Remarks

The ControlService function asks the service control manager to send the requested control code to the service. The service control manager sends the code if the service accepts the control and if the service is in a controllable state. The QueryServiceStatus or ControlService function returns a SERVICE_STATUS structure whose dwCurrentState and dwControlsAccepted members indicate the current state and controls accepted by a running Win32 service.

All running services accept the SERVICE_CONTROL_INTERROGATE control code by default. Each service specifies the other control codes that it accepts when it calls the SetServiceStatus function to report its status.
The following table shows the action of the service control manager in each of the possible service states:

Service state Stop Other controls
STOPPED (c) (c)
STOP_PENDING (b) (b)
START_PENDING (a) (b)
RUNNING (a) (a)
CONTINUE_PENDING (a) (a)
PAUSE_PENDING (a) (a)
PAUSED (a) (a)


(a) If the service accepts this control code, send the request to the service; otherwise, ControlService returns FALSE and GetLastError returns ERROR_INVALID_SERVICE_CONTROL.
(b) The service is not in a controllable state, so ControlService returns FALSE and GetLastError returns ERROR_SERVICE_CANNOT_ACCEPT_CTRL.
(c) The service is not in a controllable state, so ControlService returns FALSE and GetLastError returns ERROR_SERVICE_NOT_ACTIVE.


See Also

CreateService, OpenService, QueryServiceStatus, SetServiceStatus, SERVICE_STATUS


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

ControlService



Функция ControlService посылает управлению код в услугу Win32.

BOOL ControlService(

SC_HANDLE hService, // ручка, чтобы обслуживать DWORD dwControl, // управляющий код
указатель LPSERVICE_STATUS lpServiceStatus // должен обслуживать структуру статуса
);


Параметры

hService

Идентифицирует услугу. Эта ручка возвращана OpenService или функцией CreateService. Доступ необходимый для этой ручки зависит от кода dwControl попрошенного.

dwControl

Определяет попрошенный управляющий код. Эта величина может быть одним из стандартных управляющих кодов на столе, или это может быть управляющим кодом определенного потребителя в дипазоне 128 на 255, включающее. Для управляющих кодов определенного потребителя, ручка hService должна иметь доступ SERVICE_USER_DEFINED_CONTROL, и услуга определяет действие связанное управляющим кодом.

Оцените Значение SERVICE_CONTROL_STOP
Просит услугу, чтобы прекращаться. Ручка hService должна иметь доступ SERVICE_STOP.
SERVICE_CONTROL_PAUSE
Просит услугу, чтобы останавливаться. Ручка hService должна иметь доступ SERVICE_PAUSE_CONTINUE.
SERVICE_CONTROL_CONTINUE
Просит остановленную услугу, чтобы продолжаться. Ручка hService должна иметь доступ SERVICE_PAUSE_CONTINUE.
SERVICE_CONTROL_INTERROGATE
Запрашивает услугу, чтобы корректировать немедленно текущую информацию статуса управляющему менеджеру услуги. Ручка hService должна иметь доступ SERVICE_INTERROGATE.
SERVICE_CONTROL_SHUTDOWN
Функция ControlService терпит неудачу если этот управляющий код определен.


lpServiceStatus

Точки на структуру SERVICE_STATUS где самая последняя информация статуса услуги возвращана. Возвращанная информация отражает наиболее последний статус выданный услугой управляющему менеджеру услуги.



Обратные Величины

Если функция добивается успеха, обратная величина ненулевая.
Если функция терпит неудачу, обратная величина нулевая. Для того, чтобы расширять информацию ошибки, назовите GetLastError.

Ошибки

Следующие коды ошибки могут быть установлены управляющим менеджером услуги. Другие коды ошибки могут быть установлены функциями регистрации, что названы управляющим менеджером услуги.

Оцените Значение ERROR_ACCESS_DENIED
Определенная ручка не была открыта необходимым доступом.
ERROR_DEPENDENT_SERVICES_RUNNING
Услуга не может быть прекратиться поскольку другой прогон услуг зависимый от этого.
ERROR_INVALID_SERVICE_CONTROL
Запрошенный управляющий код недействителен, или это неприемлемое в услуге.
ERROR_SERVICE_CANNOT_ACCEPT_CTRL
Запрошенный управляющий код не может быть послан в услугу поскольку состояние услуги - SERVICE_STOPPED, SERVICE_START_PENDING, или SERVICE_STOP_PENDING.
ERROR_SERVICE_NOT_ACTIVE услуга не запущена.
ERROR_SERVICE_REQUEST_TIMEOUT
Услуга не реагировала на стартовый запрос в своевременном способе.


Замечания

Функция ControlService спрашивает, чтобы управляющий менеджер услуги посылал запрошенному управлению код в услугу. Управляющий менеджер услуги посылает код если услуга принимает управление и если услуга - в управляемом состоянии. QueryServiceStatus Или функциональный возврат ControlService структура SERVICE_STATUS чей dwCurrentState и dwControlsAccepted участники указывают текущее состояние и элементы управления принимались прогоном услуги Win32.

Весь прогон услуг принимает управляющий код SERVICE_CONTROL_INTERROGATE по умолчанию. Каждая услуга определяет другой управляющий кодировать, что она принимает когда это называет функцию SetServiceStatus, чтобы сообщать свой статус.
Следующая таблица показывает действие управляющего менеджера услуги в каждых возможных состояниях услуги:

Состояние Услуги Останавливает Другие элементы управления ОСТАНОВЛЕННЫЕ ПРОГОН (c) (c) STOP_PENDING (b) (b) START_PENDING (a) (b) (a) (a) CONTINUE_PENDING (a) (a) PAUSE_PENDING (a) (a) ОСТАНОВИВШЕЕСЯ (a) (a)


(a) Если услуга принимает этот управляющий код, посылает запрос в услугу; в противном случае, ЛОЖЬ возврата ControlService и возврат GetLastError ERROR_INVALID_SERVICE_CONTROL.
(b) услуга - не в управляемом состоянии, так что ЛОЖЬ возврата ControlService и возврат GetLastError ERROR_SERVICE_CANNOT_ACCEPT_CTRL.
(c) услуга - не в управляемом состоянии, так что ЛОЖЬ возврата ControlService и возврат GetLastError ERROR_SERVICE_NOT_ACTIVE.


Смотри Также

CreateService, OpenService, QueryServiceStatus, SetServiceStatus, SERVICE_STATUS


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz