SetServiceObjectSecurity, fonction (winsvc.h)
[SetServiceObjectSecurity est disponible pour une utilisation dans les systèmes d’exploitation spécifiés dans la section Configuration requise. Il sera peut-être modifié ou indisponible dans les versions ultérieures. Utilisez plutôt la fonction SetNamedSecurityInfo .]
La fonction SetServiceObjectSecurity définit le descripteur de sécurité d’un objet de service.
Syntaxe
BOOL SetServiceObjectSecurity(
[in] SC_HANDLE hService,
[in] SECURITY_INFORMATION dwSecurityInformation,
[in] PSECURITY_DESCRIPTOR lpSecurityDescriptor
);
Paramètres
[in] hService
Handle pour le service. Ce handle est retourné par la fonction OpenService ou CreateService . L’accès requis pour ce handle dépend des informations de sécurité spécifiées dans le paramètre dwSecurityInformation .
[in] dwSecurityInformation
Spécifie les composants du descripteur de sécurité à définir. Ce paramètre peut être une combinaison des valeurs suivantes. Notez que les indicateurs non gérés par SetServiceObjectSecurity seront ignorés en mode silencieux.
Valeur | Signification |
---|---|
|
Définit la liste de contrôle d’accès discrétionnaire (DACL) de l’objet . Le handle spécifié par hService doit avoir un accès WRITE_DAC, ou le processus appelant doit être le propriétaire de l’objet . |
|
Définit l’identificateur de sécurité du groupe principal (SID) de l’objet . Le handle spécifié par hService doit avoir un accès WRITE_OWNER, ou le processus appelant doit être le propriétaire de l’objet . |
|
Définit le SID du propriétaire de l’objet. Le handle spécifié par hService doit avoir un accès WRITE_OWNER, ou le processus appelant doit être le propriétaire de l’objet ou avoir le privilège SE_TAKE_OWNERSHIP_NAME activé. |
|
Définit la liste de contrôle d’accès système (SACL) de l’objet . Le handle spécifié par hService doit avoir un accès ACCESS_SYSTEM_SECURITY.
Pour obtenir un accès ACCESS_SYSTEM_SECURITY
|
[in] lpSecurityDescriptor
Pointeur vers une structure de SECURITY_DESCRIPTOR qui contient les nouvelles informations de sécurité.
Valeur retournée
Si la fonction réussit, la fonction retourne une valeur différente de zéro.
Si la fonction échoue, elle retourne zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Les codes d’erreur suivants peuvent être définis par le gestionnaire de contrôle de service. D’autres codes d’erreur peuvent être définis par les fonctions de Registre appelées par le gestionnaire de contrôle de service.
Code de retour | Description |
---|---|
|
Le handle spécifié n’a pas été ouvert avec l’accès requis, ou le processus appelant n’est pas le propriétaire de l’objet. |
|
Le handle spécifié n’est pas valide. |
|
Les informations de sécurité ou le descripteur de sécurité spécifiés ne sont pas valides. |
|
Le service spécifié a été marqué pour suppression. |
Remarques
La fonction SetServiceObjectSecurity définit les parties spécifiées du descripteur de sécurité de l’objet de service en fonction des informations spécifiées dans la mémoire tampon lpSecurityDescriptor . Cette fonction remplace tout ou partie des informations de sécurité associées à l’objet de service, en fonction des indicateurs définis dans le paramètre dwSecurityInformation et soumis aux droits d’accès du processus appelant.
Lorsqu’un service est créé, le gestionnaire de contrôle de service affecte un descripteur de sécurité par défaut à l’objet de service. Pour récupérer une copie du descripteur de sécurité d’un objet de service, appelez la fonction QueryServiceObjectSecurity . Pour obtenir une description du descripteur de sécurité par défaut pour un objet de service, consultez Sécurité du service et droits d’accès.
Notez que l’octroi de certains accès à des utilisateurs non approuvés (tels que SERVICE_CHANGE_CONFIG ou SERVICE_STOP) peut leur permettre d’interférer avec l’exécution de votre service et éventuellement leur permettre d’exécuter des applications sous le compte LocalSystem.
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 |