win32_get_last_control_message

(PECL win32service >=0.1.0)

win32_get_last_control_messageRetourne le dernier message de contrôle qui a été envoyé à ce service

Description

win32_get_last_control_message(): int

Retourne le code de contrôle qui a été envoyé en dernier à ce processus de service. Lorsqu'il fonctionne en tant que service, vous devriez vérifier périodiquement pour déterminer si le service doit être arrêté.

Attention

Depuis la version 0.2.0, cette fonction fonctionne uniquement en ligne de commande. Elle est désactivé dans les autres cas.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une constante de contrôle qui sera une parmi les constantes de contrôle des messages de service 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.

Si la valeur se situe entre 128 et 255, le code de contrôle est personnalisé.

Erreurs / Exceptions

Avant la version 1.0.0, si cette fonction est utilisé en dehors du SAPI "cli", une erreur E_ERROR sera émise.

À partir de la version 1.0.0, lancera une Win32ServiceException si le SAPI n'est pas "cli"

Historique

Version Description
PECL win32service 1.0.0 Lance une ValueError si un paramètre est invalide, avant false était retourné.
PECL win32service 1.0.0 Lance une Win32ServiceException en cas d'erreur, avant un Code d'erreur Win32 était retourné.
PECL win32service 0.2.0 Cette fonction fonctionne uniquement en ligne de commande.

Voir aussi

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