ChangeServiceConfig2A, fonction (winsvc.h)
Modifie les paramètres de configuration facultatifs d’un service.
Syntaxe
BOOL ChangeServiceConfig2A(
[in] SC_HANDLE hService,
[in] DWORD dwInfoLevel,
[in, optional] LPVOID lpInfo
);
Paramètres
[in] hService
Handle pour le service. Ce handle est retourné par la fonction OpenService ou CreateService et doit avoir le droit d’accès SERVICE_CHANGE_CONFIG . Pour plus d’informations, consultez Sécurité du service et droits d’accès.
Si le contrôleur de service gère l’action SC_ACTION_RESTART , hService doit disposer du droit d’accès SERVICE_START .
[in] dwInfoLevel
Informations de configuration à modifier. Ce paramètre peut prendre les valeurs suivantes.
Valeur | Signification |
---|---|
|
Le paramètre lpInfo est un pointeur vers une structure SERVICE_DELAYED_AUTO_START_INFO .
Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le paramètre lpInfo est un pointeur vers une structure SERVICE_DESCRIPTION . |
|
Le paramètre lpInfo est un pointeur vers une structure SERVICE_FAILURE_ACTIONS .
Si le contrôleur de service gère l’action SC_ACTION_REBOOT, l’appelant doit disposer du privilègeSE_SHUTDOWN_NAME. Pour plus d’informations, consultez Exécution avec des privilèges spéciaux. |
|
Le paramètre lpInfo est un pointeur vers une structure SERVICE_FAILURE_ACTIONS_FLAG .
Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le paramètre lpInfo est un pointeur vers une structure SERVICE_PREFERRED_NODE_INFO .
Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le paramètre lpInfo est un pointeur vers une structure SERVICE_PRESHUTDOWN_INFO .
Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le paramètre lpInfo est un pointeur vers une structure SERVICE_REQUIRED_PRIVILEGES_INFO .
Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le paramètre lpInfo est un pointeur vers une structure SERVICE_SID_INFO . |
|
Le paramètre lpInfo est un pointeur vers une structure SERVICE_TRIGGER_INFO . Cette valeur n’est pas prise en charge par la version ANSI de ChangeServiceConfig2.
Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge avant Windows Server 2008 R2. |
|
Le paramètre lpInfo est un pointeur SERVICE_LAUNCH_PROTECTED_INFO structure.
Note Cette valeur est prise en charge à partir de Windows 8.1.
|
[in, optional] lpInfo
Pointeur vers la nouvelle valeur à définir pour les informations de configuration. Le format de ces données dépend de la valeur du paramètre dwInfoLevel . Si cette valeur est NULL, les informations restent inchangées.
Valeur retournée
Si la fonction réussit, la valeur de retour est différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Remarques
La fonction ChangeServiceConfig2 modifie les informations de configuration facultatives pour le service spécifié dans la base de données du gestionnaire de contrôle de service. Vous pouvez obtenir les informations de configuration facultatives actuelles à l’aide de la fonction QueryServiceConfig2 .
Vous ne pouvez pas définir la valeur SERVICE_CONFIG_FAILURE_ACTIONS pour un service qui partage le processus du gestionnaire de contrôle de service. Cela inclut tous les services dont l’image exécutable est « Services.exe ».
Vous pouvez modifier et interroger des informations de configuration supplémentaires à l’aide des fonctions ChangeServiceConfig et QueryServiceConfig , respectivement.
Si un service est configuré pour redémarrer une fois qu’il s’est terminé avec une erreur, le gestionnaire de contrôle de service met en file d’attente l’action de redémarrage pour qu’elle se produise après le délai spécifié. Une action de redémarrage en file d’attente ne peut pas être annulée. Si le service est redémarré manuellement, puis arrêté avant que l’action de redémarrage mis en file d’attente se produise, le service redémarre de manière inattendue lorsque le délai s’écoule. Le service doit être explicitement désactivé pour l’empêcher de redémarrer.
La valeur SERVICE_CONFIG_LAUNCH_PROTECTED peut être utilisée pour lancer le service comme protégé. Pour lancer le service comme protégé, le service doit être signé avec un certificat spécial.
SERVICE_CONFIG_LAUNCH_PROTECTED exemple :
SERVICE_LAUNCH_PROTECTED_INFO Info;
SC_HANDLE hService;
Info.dwLaunchProtected = SERVICE_LAUNCH_PROTECTED_ANTIMALWARE_LIGHT;
hService = CreateService (...);
if (ChangeServiceConfig2(hService,
SERVICE_CONFIG_LAUNCH_PROTECTED,
&Info) == FALSE)
{
Result = GetLastError();
}
Exemples
Pour obtenir un exemple, consultez Modification de la configuration d’un service.
Notes
L’en-tête winsvc.h définit ChangeServiceConfig2 en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | winsvc.h (inclure Windows.h) |
Bibliothèque | Advapi32.lib |
DLL | Advapi32.dll |
Voir aussi
QueryServiceDynamicInformation
SERVICE_DELAYED_AUTO_START_INFO