win32_get_last_control_message

(PECL win32service >=0.1.0)

win32_get_last_control_messageВозвращает последнее управляющее сообщение, которое было отправлено этой службе

Описание

win32_get_last_control_message(): int

Возвращает управляющий код, последний раз отправленный этому процессу службы. При работе в качестве службы вы должны периодически проверять это, чтобы определять, нужно ли вашей службе прекратить работу.

Предостережение

Начиная с версии 0.2.0, функция работает только в "cli" SAPI. На других SAPI эта функция отключена.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает управляющую константу, которая будет одной из Констант сообщений управления службой Win32Service: WIN32_SERVICE_CONTROL_CONTINUE, WIN32_SERVICE_CONTROL_DEVICEEVENT, WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE, WIN32_SERVICE_CONTROL_INTERROGATE, WIN32_SERVICE_CONTROL_NETBINDADD, WIN32_SERVICE_CONTROL_NETBINDDISABLE, WIN32_SERVICE_CONTROL_NETBINDENABLE, WIN32_SERVICE_CONTROL_NETBINDREMOVE, WIN32_SERVICE_CONTROL_PARAMCHANGE, WIN32_SERVICE_CONTROL_PAUSE, WIN32_SERVICE_CONTROL_POWEREVENT, WIN32_SERVICE_CONTROL_PRESHUTDOWN, WIN32_SERVICE_CONTROL_SESSIONCHANGE, WIN32_SERVICE_CONTROL_SHUTDOWN, WIN32_SERVICE_CONTROL_STOP.

Если значение находится в диапазоне от 128 до 255, код управления настраивается.

Ошибки

До версии 1.0.0, если SAPI не "cli", функция выдавала ошибку уровня E_ERROR.

Начиная с версии 1.0.0, выбрасывает Win32ServiceException, если SAPI не "cli"

Список изменений

Версия Описание
PECL win32service 1.0.0 Выбрасывает ValueError при неверных данных в параметрах, ранее возвращалось false.
PECL win32service 1.0.0 Выбрасывает Win32ServiceException в случае возникновения ошибки, ранее возвращался Код ошибки Win32.
PECL win32service 0.2.0 Функция работает только с "cli" SAPI.

Смотрите также

add a note add a note

User Contributed Notes 1 note

up
0
kermodebea at kermodebear dot Oh Are Gee
18 years ago
The definitions of some of these control codes can be found here (URL broken due to comment system, sorry about that!): http://msdn.microsoft.com/library
/default.asp?url=/library/en-us/dllproc/base/handler.asp

However, for your convenience (and mine):
SERVICE_CONTROL_STOP, 0x00000001
Notifies a service that it should stop.

If a service accepts this control code, it must stop upon receipt. After the SCM sends this control code, it does not send other control codes.

Windows XP/2000:  If the service returns NO_ERROR and continues to run, it continues to receive control codes. This behavior changed starting with Windows Server 2003 and Windows XP SP2.

SERVICE_CONTROL_PAUSE, 0x00000002
Notifies a service that it should pause.
(Although I guess that there is no requirement that you must.)

SERVICE_CONTROL_CONTINUE, 0x00000003
Notifies a paused service that it should resume.

SERVICE_CONTROL_INTERROGATE, 0x00000004
Notifies a service that it should report its current status information to the service control manager.
(I'm guessing that a call to win32_set_service_status() would satisfy interrogation?)

SERVICE_CONTROL_SHUTDOWN, 0x00000005
Notifies a service that the system is shutting down so the service can perform cleanup tasks.
To Top