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 interactive Services. |
dwStartType
Quand démarrer le service. Ce membre peut être l’une des valeurs suivantes.
dwErrorControl
Gravité de l’erreur et action effectuée, 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 de service (généralement la fonction principale).
lpLoadOrderGroup
Nom du groupe d’ordre de chargement auquel appartient ce service. 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 de classement 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 d’étiquette 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 été affecté à une balise. Vous pouvez utiliser une balise pour commander le démarrage du service au sein d’un groupe de commandes de chargement en spécifiant un vecteur d’ordre d’étiquette 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 SERVICE_BOOT_START ou SERVICE_SYSTEM_START types de démarrage.
lpDependencies
Pointeur vers un tableau de noms séparés par null des services ou groupes d’ordre de chargement qui doivent commencer avant ce service. Le tableau est doublement terminé par null. Si le pointeur est 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écédé du 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 est en cours d’exécution 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 sur lequel le processus de service sera connecté comme lorsqu’il s’exécute. Ce nom peut être du formulaire Domaine\Nom d’utilisateur. 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 du pilote (autrement dit, \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é dans le gestionnaire de contrôle de service. Les comparaisons de noms complets 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 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 : 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 l'configuration d’un service.
Note
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. Le mélange 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.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows XP [applications de bureau uniquement] |
serveur minimum pris en charge | Windows Server 2003 [applications de bureau uniquement] |
d’en-tête | winsvc.h (inclure Windows.h) |