PHP Velho Oeste 2024

win32_get_last_control_message

(PECL win32service >=0.1.0)

win32_get_last_control_messageReturns the last control message that was sent to this service

Description

win32_get_last_control_message(): int

Returns the control code that was last sent to this service process. When running as a service you should periodically check this to determine if your service needs to stop running.

Caution

Since version 0.2.0, this function work only in "cli" SAPI. On other SAPI this function is disabled.

Parameters

This function has no parameters.

Return Values

Returns a control constant which will be one of the Win32Service Service Control Message Constants: 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.

If the value is between 128 and 255, the control code is custom.

Errors/Exceptions

Prior to version 1.0.0, if the SAPI is not "cli", this function emits an E_ERROR level error.

As of version 1.0.0, will throw a Win32ServiceException if SAPI is not "cli"

Changelog

Version Description
PECL win32service 1.0.0 Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 0.2.0 This function works only in the "cli" SAPI.

See Also

add a note add a note

User Contributed Notes 1 note

up
0
kermodebea at kermodebear dot Oh Are Gee
17 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