structure QUERY_SERVICE_CONFIGA (winsvc.h)
Contient des informations de configuration pour un service installé. Il est utilisé par la fonction QueryServiceConfig .
Syntaxe
typedef struct _QUERY_SERVICE_CONFIGA {
DWORD dwServiceType;
DWORD dwStartType;
DWORD dwErrorControl;
LPSTR lpBinaryPathName;
LPSTR lpLoadOrderGroup;
DWORD dwTagId;
LPSTR lpDependencies;
LPSTR lpServiceStartName;
LPSTR lpDisplayName;
} QUERY_SERVICE_CONFIGA, *LPQUERY_SERVICE_CONFIGA;
Membres
dwServiceType
Type de service. Ce membre peut être l’une des valeurs suivantes.
Si la valeur est SERVICE_WIN32_OWN_PROCESS ou SERVICE_WIN32_SHARE_PROCESS et que le service s’exécute dans le contexte du compte LocalSystem, le type suivant peut également être spécifié.
Valeur | Signification |
---|---|
|
Le service peut interagir avec le bureau.
Pour plus d’informations, consultez Services interactifs. |
dwStartType
Quand démarrer le service. Ce membre peut être l’une des valeurs suivantes.
Valeur | Signification |
---|---|
|
Un service démarré automatiquement par le gestionnaire de contrôle de service au démarrage du système. |
|
Un pilote de périphérique démarré par le chargeur système. Cette valeur est uniquement valide pour les services de pilote. |
|
Un service démarré par le gestionnaire de contrôle de service lorsqu’un processus appelle la fonction StartService . |
|
Service qui ne peut pas être démarré. Les tentatives de démarrage du service entraînent le code d’erreur ERROR_SERVICE_DISABLED. |
|
Un pilote de périphérique démarré par la fonction IoInitSystem . Cette valeur est uniquement valide pour les services de pilote. |
dwErrorControl
Gravité de l’erreur et action entreprise si ce service ne parvient pas à démarrer. Ce membre peut être l’une des valeurs suivantes.
lpBinaryPathName
Chemin complet du fichier binaire de service.
Le chemin d’accès peut également inclure des arguments pour un service de démarrage automatique. Ces arguments sont passés au point d’entrée du service (généralement la fonction main).
lpLoadOrderGroup
Nom du groupe d’ordre de charge auquel ce service appartient. Si le membre a la valeur NULL ou une chaîne vide, le service n’appartient pas à un groupe d’ordre de chargement.
Le programme de démarrage utilise des groupes d’ordre de charge pour charger des groupes de services dans un ordre spécifié par rapport aux autres groupes. La liste des groupes d’ordre de chargement est contenue dans la valeur de Registre suivante :
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder
dwTagId
Valeur de balise unique pour ce service dans le groupe spécifié par le paramètre lpLoadOrderGroup . La valeur zéro indique que le service n’a pas reçu de balise. Vous pouvez utiliser une balise pour le démarrage du service de classement au sein d’un groupe de commandes de chargement en spécifiant un vecteur d’ordre de balise dans le Registre situé à l’adresse suivante :
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList
Les balises sont évaluées uniquement pour les services de type SERVICE_KERNEL_DRIVER et SERVICE_FILE_SYSTEM_DRIVER qui ont des types de démarrage SERVICE_BOOT_START ou SERVICE_SYSTEM_START .
lpDependencies
Pointeur vers un tableau de noms de services ou de groupes d’ordre de chargement séparés par null qui doivent commencer avant ce service. Le tableau est doublement terminé par null. Si le pointeur a la valeur NULL ou s’il pointe vers une chaîne vide, le service n’a aucune dépendance. Si un nom de groupe est spécifié, il doit être préfixé par le caractère SC_GROUP_IDENTIFIER (défini dans WinSvc.h) pour le différencier d’un nom de service, car les services et les groupes de services partagent le même espace de noms. La dépendance à un service signifie que ce service ne peut s’exécuter que si le service dont il dépend est en cours d’exécution. La dépendance à un groupe signifie que ce service peut s’exécuter si au moins un membre du groupe s’exécute après une tentative de démarrage de tous les membres du groupe.
lpServiceStartName
Si le type de service est SERVICE_WIN32_OWN_PROCESS ou SERVICE_WIN32_SHARE_PROCESS, ce membre est le nom du compte sous lequel le processus de service sera connecté lors de son exécution. Ce nom peut être de la forme Nomd’utilisateur du domaine\. Si le compte appartient au domaine intégré, le nom peut être de la forme .\UserName. Le nom peut également être « LocalSystem » si le processus s’exécute sous le compte LocalSystem.
Si le type de service est SERVICE_KERNEL_DRIVER ou SERVICE_FILE_SYSTEM_DRIVER, ce membre est le nom de l’objet de pilote (c’est-à-dire, \FileSystem\Rdr ou \Driver\Xns) que le système d’entrée et de sortie (E/S) utilise pour charger le pilote de périphérique. Si ce membre a la valeur NULL, le pilote doit être exécuté avec un nom d’objet par défaut créé par le système d’E/S, en fonction du nom du service.
lpDisplayName
Nom complet à utiliser par les programmes de contrôle de service pour identifier le service. Cette chaîne a une longueur maximale de 256 caractères. Le nom est conservé à la casse dans le gestionnaire de contrôle de service. Les comparaisons de noms d’affichage ne respectent toujours pas la casse.
Ce paramètre peut spécifier une chaîne localisée au format suivant :
@[Path]DLLName,-StrID
La chaîne avec l’identificateur StrID est chargée à partir de DLLName ; Le chemin d’accès est facultatif. Pour plus d’informations, consultez RegLoadMUIString.
Windows Server 2003 et Windows XP : Les chaînes localisées ne sont pas prises en charge tant que Windows Vista n’est pas pris en charge.
Remarques
Les informations de configuration d’un service sont initialement spécifiées lorsque le service est créé par un appel à la fonction CreateService . Les informations peuvent être modifiées en appelant la fonction ChangeServiceConfig .
Exemples
Pour obtenir un exemple, consultez Interrogation de la configuration d’un service.
Notes
L’en-tête winsvc.h définit QUERY_SERVICE_CONFIG 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] |
En-tête | winsvc.h (inclure Windows.h) |