OpenServiceW, fonction (winsvc.h)
Ouvre un service existant.
Syntaxe
SC_HANDLE OpenServiceW(
[in] SC_HANDLE hSCManager,
[in] LPCWSTR lpServiceName,
[in] DWORD dwDesiredAccess
);
Paramètres
[in] hSCManager
Handle de la base de données du gestionnaire de contrôle de service. La fonction OpenSCManager retourne ce handle. Pour plus d’informations, consultez Sécurité des services et droits d’accès.
[in] lpServiceName
Nom du service à ouvrir. Il s’agit du nom spécifié par le paramètre lpServiceName de la fonction CreateService lorsque l’objet de service a été créé, et non le nom d’affichage du service affiché par les applications d’interface utilisateur pour identifier le service.
La longueur maximale de la chaîne est de 256 caractères. La base de données du gestionnaire de contrôle de service conserve le cas des caractères, mais les comparaisons de noms de service ne respectent toujours pas la casse. Les barres obliques (/) et les barres obliques inverses (\) sont des caractères de nom de service non valides.
[in] dwDesiredAccess
Accès au service. Pour obtenir la liste des droits d’accès, consultez Sécurité des services et droits d’accès.
Avant d’accorder l’accès demandé, le système vérifie le jeton d’accès du processus appelant par rapport à la liste de contrôle d’accès discrétionnaire du descripteur de sécurité associé à l’objet de service.
Valeur de retour
Si la fonction réussit, la valeur de retour est un handle au service.
Si la fonction échoue, la valeur de retour est NULL. Pour obtenir des informations d’erreur étendues, appelez GetLastError.
Les codes d’erreur suivants peuvent être définis par le gestionnaire de contrôle de service. D’autres peuvent être définies par les fonctions de Registre appelées par le gestionnaire de contrôle de service.
Retourner le code | Description |
---|---|
|
Le handle n’a pas accès au service. |
|
Le handle spécifié n’est pas valide. |
|
Le nom de service spécifié n’est pas valide. |
|
Le service spécifié n’existe pas. |
Remarques
Le handle retourné n’est valide que pour le processus appelé OpenService. Il peut être fermé en appelant la fonction CloseServiceHandle
Pour utiliser OpenService, aucun privilège n’est requis en dehors de SC_MANAGER_CONNECT.
Exemples
Pour obtenir un exemple, consultez Démarrage d’un service.
Note
L’en-tête winsvc.h définit OpenService comme 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] |
plateforme cible | Windows |
d’en-tête | winsvc.h (inclure Windows.h) |
bibliothèque | Advapi32.lib |
DLL | Advapi32.dll |