# Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Masque binaire de type de Service de Win32Service
Constante | Valeur | Description
--- | --- | ---
`WIN32_SERVICE_WIN32_OWN_PROCESS` | `0x00000010` | Le service s'exécute dans son propre processus.
`WIN32_SERVICE_INTERACTIVE_PROCESS` | `0x000000100` | Le service peut interagir avec le bureau. Cette option n'est pas disponible sur Windows Vista ou version ultérieure.
`WIN32_SERVICE_WIN32_OWN_PROCESS_INTERACTIVE` | `0x00000110` | Le service s'exécute dans son propre processus et peut interagir avec le bureau. Cette option n'est pas disponible sous Windows Vista et suivant.

Constantes de Status du Service de Win32Service
Constante | Valeur | Description
--- | --- | ---
`WIN32_SERVICE_CONTINUE_PENDING` | `0x00000005` | La continuation du service est en attente.
`WIN32_SERVICE_PAUSE_PENDING` | `0x00000006` | La mise en pause du service est en attente.
`WIN32_SERVICE_PAUSED` | `0x00000004` | Le service est en pause.
`WIN32_SERVICE_RUNNING` | `0x00000004` | Le service est en cours d'exécution.
`WIN32_SERVICE_START_PENDING` | `0x00000002` | Le service est en cours de démarrage.
`WIN32_SERVICE_STOP_PENDING` | `0x00000003` | Le service est en cours d'arrêt.
`WIN32_SERVICE_STOPPED` | `0x00000001` | Le service est arrêté.

Constantes du Service de Control de Message de Win32Service
Constante | Valeur | Description
--- | --- | ---
`WIN32_SERVICE_CONTROL_CONTINUE` | `0x00000003` | Avertit un service suspendu qu'il devrait reprendre.
`WIN32_SERVICE_CONTROL_DEVICEEVENT` | `0x0000000B` |
`WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE` | `0x0000000C` |
`WIN32_SERVICE_CONTROL_INTERROGATE` | `0x00000004` | Avertit un service qu'il doit rendre compte de informations sur son état actuel au gestionnaire de contrôle de service.
`WIN32_SERVICE_CONTROL_NETBINDADD` | `0x00000007` | Avertit un service réseau qu'il existe un nouveau composant pour la liaison.
`WIN32_SERVICE_CONTROL_NETBINDDISABLE` | `0x0000000A` | Avertit un service réseau que l'une de ses liaisons a été désactivée.
`WIN32_SERVICE_CONTROL_NETBINDENABLE` | `0x00000009` | Avertit un service réseau qu'une liaison désactivée a été activée.
`WIN32_SERVICE_CONTROL_NETBINDREMOVE` | `0x00000008` | Avertit un service réseau qu'un composant pour la liaison a été supprimé.
`WIN32_SERVICE_CONTROL_PARAMCHANGE` | `0x00000006` | Avertit un service que ses paramètres de démarrage ont changé.
`WIN32_SERVICE_CONTROL_PAUSE` | `0x00000002` | Avertit un service qu'il doit se mettre en pause.
`WIN32_SERVICE_CONTROL_POWEREVENT` | `0x0000000D` |
`WIN32_SERVICE_CONTROL_PRESHUTDOWN` | `0x0000000F` | Avertit un service que le système va s'arrêter. Un service qui gère cette notification bloque l'arrêt du système jusqu'à l'arrêt du service ou jusqu'à ce que le délai preshutdown expire. Cette valeur n'est pas pris en charge par Windows Server 2003 et Windows XP/2000.
`WIN32_SERVICE_CONTROL_SESSIONCHANGE` | `0x0000000E` |
`WIN32_SERVICE_CONTROL_SHUTDOWN` | `0x00000005` | Avertit un service que le système s'arrête et que le service peut donc effectuer des tâches de nettoyage. Si un service accepte ce code de contrôle, il doit s'arrêter dès qu'il s'acquitte de ses tâches de nettoyage. Après l'envoi de ce code de contrôle par l'ACM, aucun autre code de contrôle ne sera envoyé au service.
`WIN32_SERVICE_CONTROL_STOP` | `0x00000001` | Avertit un service qu'il doit s'arrêter.

Masque binaire de Message de Control de Service de Win32Service
Constante | Valeur | Description
--- | --- | ---
`WIN32_SERVICE_ACCEPT_HARDWAREPROFILECHANGE` | `0x00000020` | Le service est notifié lorsque le profil matériel de l'ordinateur a changé. Cela permet au système d'envoyer des notifications `WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE` au service.
`WIN32_SERVICE_ACCEPT_NETBINDCHANGE` | `0x00000010` | Le service est un composant réseau qui peut accepter les modifications de sa liaison sans être arrêté et redémarré. Ce code de contrôle permet au service de recevoir les notifications `WIN32_SERVICE_CONTROL_NETBINDADD`, `WIN32_SERVICE_CONTROL_NETBINDREMOVE`, `WIN32_SERVICE_CONTROL_NETBINDENABLE`, et `WIN32_SERVICE_CONTROL_NETBINDDISABLE`.
`WIN32_SERVICE_ACCEPT_PARAMCHANGE` | `0x00000008` | Le service peut relire ses paramètres de démarrage sans être arrêté et redémarré. Ce code de contrôle permet au service de recevoir des notifications `WIN32_SERVICE_CONTROL_PARAMCHANGE`.
`WIN32_SERVICE_ACCEPT_PAUSE_CONTINUE` | `0x00000002` | Le service peut être mis en pause et continué. Ce code de control permet au service de recevoir les notifications `WIN32_SERVICE_CONTROL_PAUSE` et `WIN32_SERVICE_CONTROL_CONTINUE`.
`WIN32_SERVICE_ACCEPT_POWEREVENT` | `0x00000040` | Le service est notifié lorsque l'état d'alimentation de l'ordinateur a changé. Cela permet au système d'envoyer des notifications `WIN32_SERVICE_CONTROL_POWEREVENT` au service.
`WIN32_SERVICE_ACCEPT_PRESHUTDOWN` | `0x00000100` | Le service peut effectuer des tâche d'avant arrêt. Ce code de control permet au service de recevoir la notification `WIN32_SERVICE_CONTROL_PRESHUTDOWN`. Cette valeur n'est pas pris en charge par Windows Server 2003 et Windows XP/2000.
`WIN32_SERVICE_ACCEPT_SESSIONCHANGE` | `0x00000080` | Le service est notifié lorsque l'état de session de l'ordinateur a changé. Cela permet au système d'envoyer des notifications `WIN32_SERVICE_CONTROL_SESSIONCHANGE` au service. Windows 2000: cette valeur n'est pas prise en charge.
`WIN32_SERVICE_ACCEPT_SHUTDOWN` | `0x00000004` | Le service est informé lorsque l'arrêt du système se produit. Ce code de control permet au service de recevoir la notification `WIN32_SERVICE_CONTROL_SHUTDOWN`.
`WIN32_SERVICE_ACCEPT_STOP` | `0x00000001` | Le service peut être stoppé. Ce control permet au service de recevoir la notification `WIN32_SERVICE_CONTROL_STOP`.
`WIN32_SERVICE_ACCEPT_TIMECHANGE` | `0x00000200` | Le service est notifié lorsque l'heure système a changé. Cela permet au système d'envoyer des notifications `WIN32_SERVICE_CONTROL_TIMECHANGE` au service. Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP/2000: ce code de contrôle n'est pas pris en charge.
`WIN32_SERVICE_ACCEPT_TRIGGEREVENT` | `0x00000400` | Le service est notifié lorsqu'un événement pour lequel le service s'est enregistré se produit. Cela permet au système d'envoyer des notifications `WIN32_SERVICE_CONTROL_TRIGGEREVENT` au service. Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP/2000: ce code de contrôle n'est pas pris en charge.

Constantes de Type de Demarrage du Service de Win32Service
Constante | Valeur | Description
--- | --- | ---
`WIN32_SERVICE_BOOT_START` | `0x00000000` | Un pilote de périphérique Démarré par le chargeur système. Cette valeur est valide uniquement pour les services de pilote.
`WIN32_SERVICE_SYSTEM_START` | `0x00000001` | Un pilote de périphérique Démarré par la fonction IoInitSystem. Cette valeur est valide uniquement pour les services de pilote.
`WIN32_SERVICE_AUTO_START` | `0x00000002` | Un service lancé automatiquement par le gestionnaire de contrôle de service au démarrage du système.
`WIN32_SERVICE_DEMAND_START` | `0x00000003` | Un service a démarré par le gestionnaire de contrôle de service quand un processus appel la fonction StartService.
`WIN32_SERVICE_DISABLED` | `0x00000004` | Un service qui ne peut pas être démarré. Les tentatives pour démarrer retourne un code d'erreur `WIN32_ERROR_SERVICE_DISABLED` .

Constantes de Control d'Erreur de Win32Service
Constante | Valeur | Description
--- | --- | ---
`WIN32_SERVICE_ERROR_IGNORE` | `0x00000000` | Le programme de démarrage ignore l'erreur et continue l'opération de démarrage.
`WIN32_SERVICE_ERROR_NORMAL` | `0x00000001` | Le programme de démarrage enregistre l'erreur dans le journal des événements, mais il continue l'opération de démarrage.
`WIN32_SERVICE_ERROR_SEVERE` | `0x00000002` | Le programme de démarrage consigne l'erreur dans le journal des événements. Si la dernière configuration connue est lancée, l'opération de démarrage se poursuit. Sinon, le système est redémarré avec la dernière configuration connue-bonne.
`WIN32_SERVICE_ERROR_CRITICAL` | `0x00000003` | Le programme de démarrage consigne l'erreur dans le journal des événements, si possible. Si la dernière configuration connue est lancée, l'opération de démarrage échoue. Sinon, le système est redémarré avec la dernière bonne configuration connue.

Constantes de Service Flag de Win32Service
Constante | Valeur | Description
--- | --- | ---
`WIN32_SERVICE_RUNS_IN_SYSTEM_PROCESS` | `0x00000001` | Le service s'exécute dans un processus système qui doit toujours être en cours d'exécution.

> Note:

> Ces constantes ne sont plus utilisées à partir de Win32Service 1.0.0.

Codes d'Erreur Win32
Constante | Valeur | Description
--- | --- | ---
`WIN32_ERROR_ACCESS_DENIED` | `0x00000005` | Le gestionnaire de la base de données SMC ne dispose pas des droits d'accès appropriés.
`WIN32_ERROR_CIRCULAR_DEPENDENCY` | `0x00000423` | Une dépendance circulaire de service est spécifiée.
`WIN32_ERROR_DATABASE_DOES_NOT_EXIST` | `0x00000429` | La base de données spécifiée n'existe pas.
`WIN32_ERROR_DEPENDENT_SERVICES_RUNNING` | `0x0000041B` | Le service ne peut être stoppé car d'autres services en cours d'exécution dépendent de lui.
`WIN32_ERROR_DUPLICATE_SERVICE_NAME` | `0x00000436` | Le nom d'affichage existe déjà dans la base de données du gestionnaire de service en tant que nom de service ou que nom d'affichage.
`WIN32_ERROR_FAILED_SERVICE_CONTROLLER_CONNECT` | `0x00000427` | Cette erreur est retournée si le programme est exécuté en application console plutôt qu'en tant que service. Si le programme est exécuté en tant qu'application console à des fins de débogage, il devrait être structuré afin que le code spécifique au service ne sois jamais appelé.
`WIN32_ERROR_INSUFFICIENT_BUFFER` | `0x0000007A` | Le tampon est trop petit pour la structure d'état de service. Rien n'a été écrit à la structure.
`WIN32_ERROR_INVALID_DATA` | `0x0000000D` | Le structure d'état de service indiquée n'est pas valide.
`WIN32_ERROR_INVALID_HANDLE` | `0x00000006` | Le handle pour le gestionnaire de service de control spécifié est invalide.
`WIN32_ERROR_INVALID_LEVEL` | `0x0000007C` | Le paramètre InfoLevel contient une valeur non prise en charge.
`WIN32_ERROR_INVALID_NAME` | `0x0000007B` | Le nom de service spécifié n'est pas valide.
`WIN32_ERROR_INVALID_PARAMETER` | `0x00000057` | Un paramètre spécifié n'est pas valide.
`WIN32_ERROR_INVALID_SERVICE_ACCOUNT` | `0x00000421` | Le nom d'utilisateur spécifié dans le paramètre `user` n'existe pas. Voir win32_create_service().
`WIN32_ERROR_INVALID_SERVICE_CONTROL` | `0x0000041C` | Le code de control demandé n'est pas valide, ou il est inacceptable pour le service.
`WIN32_ERROR_PATH_NOT_FOUND` | `0x00000003` | Le service de fichier binaire n'a pu être trouvé.
`WIN32_ERROR_SERVICE_ALREADY_RUNNING` | `0x00000420` | Une instance du service est déjà en cours d'exécution.
`WIN32_ERROR_SERVICE_CANNOT_ACCEPT_CTRL` | `0x00000425` | Le code de control demandé ne peut être envoyé au service car l'état du service est `WIN32_SERVICE_STOPPED`, `WIN32_SERVICE_START_PENDING` ou `WIN32_SERVICE_STOP_PENDING`.
`WIN32_ERROR_SERVICE_DATABASE_LOCKED` | `0x0000041F` | La base de données est verouillée.
`WIN32_ERROR_SERVICE_DEPENDENCY_DELETED` | `0x00000433` | Le service dépend d'un service qui n'existe pas ou qui a été marqué pour suppression.
`WIN32_ERROR_SERVICE_DEPENDENCY_FAIL` | `0x0000042C` | Ce service dépend d'un autre service qui n'a pas pu démarrer.
`WIN32_ERROR_SERVICE_DISABLED` | `0x00000422` | Le service a été désactivé.
`WIN32_ERROR_SERVICE_DOES_NOT_EXIST` | `0x00000424` | Le service spécifié n'existe pas en tant que service installé.
`WIN32_ERROR_SERVICE_EXISTS` | `0x00000431` | Le service spécifié existe déjà dans la base de données.
`WIN32_ERROR_SERVICE_LOGON_FAILED` | `0x0000042D` | Le service n'a pas démarré en raison d'un échec de connexion. Cette erreur se produit si le service est configuré pour s'exécuter sous un compte qui n'a pas les droits "connecter en tant que service".
`WIN32_ERROR_SERVICE_MARKED_FOR_DELETE` | `0x00000430` | Le service spécifié a déjà été marqué pour suppression.
`WIN32_ERROR_SERVICE_NO_THREAD` | `0x0000041E` | Un thread n'a pas pu être créé pour le service.
`WIN32_ERROR_SERVICE_NOT_ACTIVE` | `0x00000426` | Le service n'a pas été démarré.
`WIN32_ERROR_SERVICE_REQUEST_TIMEOUT` | `0x0000041D` | Le processus du service a été démarré, mais il n'a pas appelé StartServiceCtrlDispatcher, ou le thread qui a appelé StartServiceCtrlDispatcher peut être bloqué dans une fonction du gestionnaire de contrôle.
`WIN32_ERROR_SHUTDOWN_IN_PROGRESS` | `0x0000045B` | Le système s'arrête, cette fonction ne peut pas être appelée.
`WIN32_ERROR_SERVICE_SPECIFIC_ERROR` | `0x0000042A` | Le service a retourné un code d'erreur spécifique au service.
`WIN32_NO_ERROR` | `0x00000000` | Aucune erreur.

Classes de Priorité de Base Win32
Constante | Valeur | Description
--- | --- | ---
`WIN32_ABOVE_NORMAL_PRIORITY_CLASS` | `0x00008000` | Processus ayant une priorité supérieure WIN32_NORMAL_PRIORITY_CLASS mais inférieure à WIN32_HIGH_PRIORITY_CLASS.
`WIN32_BELOW_NORMAL_PRIORITY_CLASS` | `0x00004000` | Processsus ayant une priorité supperieur à WIN32_IDLE_PRIORITY_CLASS mais inférieure à WIN32_NORMAL_PRIORITY_CLASS.
`WIN32_HIGH_PRIORITY_CLASS` | `0x00000080` | Processus qui exécute des tâches critiques dans le temps qui doivent être exécutées immédiatement. Le thread du processus devance les threads de priorité normale ou au repos. Un exemple est la liste des tâches, qui doit répondre rapidement quand elle est appelée par l'utilisateur quel que sois la charge du système. Soyez extrêmement prudent lorsque vous utilisez la classe de haute priorité, car une application de classe de haute priorité peut utiliser presque tout le temps CPU disponible.
`WIN32_IDLE_PRIORITY_CLASS` | `0x00000040` | Processus dont les threads ne s'exécutent que lorsque le système est inactif. Les threads du processus sont devancés par les threads de tout processus en cours ayant une classe de plus grande priorité. Un exemple est un économiseur d'écran. Cette classe est héritée par les processus enfants.
`WIN32_NORMAL_PRIORITY_CLASS` | `0x00000020` | Processus sans planification de besoins spéciaux.
`WIN32_REALTIME_PRIORITY_CLASS` | `0x00000100` | Processus ayant la plus haute priorité possible. Les threads du processus devance les threads de tout autre processus, y compris les processus du système d'exploitation exécutant des tâches importantes. Par exemple, un processus en temps réel qui s'exécute un peu trop lentement peut causer des pertes d'ecriture du tampon sur le disque ou empecher à la souris de répondre.

Actions de récupération Win32
Constante | Valeur | Description
--- | --- | ---
`WIN32_SC_ACTION_NONE` | `0x00000000` | Aucune action.
`WIN32_SC_ACTION_RESTART` | `0x00000001` | Redémarrer le service.
`WIN32_SC_ACTION_REBOOT` | `0x00000002` | Redémarrer le serveur.
`WIN32_SC_ACTION_RUN_COMMAND` | `0x00000003` | Exécuter un programme.

Win32 Service informations
Constante | Valeur | Description
--- | --- | ---
`WIN32_INFO_SERVICE` | "service" |
`WIN32_INFO_DISPLAY` | "display" |
`WIN32_INFO_USER` | "user" |
`WIN32_INFO_PASSWORD` | "password" |
`WIN32_INFO_PATH` | "path" |
`WIN32_INFO_PARAMS` | "params" |
`WIN32_INFO_DESCRIPTION` | "description" |
`WIN32_INFO_START_TYPE` | "start_type" |
`WIN32_INFO_LOAD_ORDER` | "load_order" |
`WIN32_INFO_SVC_TYPE` | "svc_type" |
`WIN32_INFO_ERROR_CONTROL` | "error_control" |
`WIN32_INFO_DELAYED_START` | "delayed_start" |
`WIN32_INFO_BASE_PRIORITY` | "base_priority" |
`WIN32_INFO_DEPENDENCIES` | "dependencies" |
`WIN32_INFO_RECOVERY_DELAY` | "recovery_delay" |
`WIN32_INFO_RECOVERY_ACTION_1` | "recovery_action_1" |
`WIN32_INFO_RECOVERY_ACTION_2` | "recovery_action_2" |
`WIN32_INFO_RECOVERY_ACTION_3` | "recovery_action_3" |
`WIN32_INFO_RECOVERY_RESET_PERIOD` | "recovery_reset_period" |
`WIN32_INFO_RECOVERY_ENABLED` | "recovery_enabled" |
`WIN32_INFO_RECOVERY_REBOOT_MSG` | "recovery_reboot_msg" |
`WIN32_INFO_RECOVERY_COMMAND` | "recovery_command" |

Permission de service Win32
Constante | Valeur | Description
--- | --- | ---
`WIN32_SERVICE_ALL_ACCESS` | `0x000F003F` |
`WIN32_SERVICE_CHANGE_CONFIG` | `0x00000002` |
`WIN32_SERVICE_ENUMERATE_DEPENDENTS` | `0x00000008` |
`WIN32_SERVICE_INTERROGATE` | `0x00000080` |
`WIN32_SERVICE_PAUSE_CONTINUE` | `0x00000040` |
`WIN32_SERVICE_QUERY_CONFIG` | `0x00000001` |
`WIN32_SERVICE_QUERY_STATUS` | `0x00000004` |
`WIN32_SERVICE_START` | `0x00000010` |
`WIN32_SERVICE_STOP` | `0x00000020` |
`WIN32_SERVICE_USER_DEFINED_CONTROL` | `0x00000100` |
`WIN32_ACCESS_SYSTEM_SECURITY` | `0x00001000` |
`WIN32_DELETE` | `0x00010000` |
`WIN32_READ_CONTROL` | `0x00020000` |
`WIN32_WRITE_DAC` | `0x00040000` |
`WIN32_WRITE_OWNER` | `0x00080000` |
`WIN32_GENERIC_READ` | Inclut les permissions: `WIN32_STANDARD_RIGHTS_READ`, `WIN32_SERVICE_QUERY_CONFIG`, `WIN32_SERVICE_QUERY_STATUS`, `WIN32_SERVICE_INTERROGATE`, `WIN32_SERVICE_ENUMERATE_DEPENDENTS` |
`WIN32_GENERIC_WRITE` | Inclut les permissions: `WIN32_STANDARD_RIGHTS_WRITE`, `WIN32_SERVICE_CHANGE_CONFIG` |
`WIN32_GENERIC_EXECUTE` | Inclut les permissions: `WIN32_STANDARD_RIGHTS_EXECUTE`, `WIN32_SERVICE_START`, `WIN32_SERVICE_STOP`, `WIN32_SERVICE_PAUSE_CONTINUE`, `WIN32_SERVICE_USER_DEFINED_CONTROL` |