SetSecurityInfo, fonction (aclapi.h)
La fonction SetSecurityInfo définit les informations de sécurité spécifiées dans le descripteur de sécurité d’un objet spécifié. L’appelant identifie l’objet par un handle.
Pour définir la SACL d’un objet, le privilège SE_SECURITY_NAME doit être activé pour l’appelant.
Syntaxe
DWORD SetSecurityInfo(
[in] HANDLE handle,
[in] SE_OBJECT_TYPE ObjectType,
[in] SECURITY_INFORMATION SecurityInfo,
[in, optional] PSID psidOwner,
[in, optional] PSID psidGroup,
[in, optional] PACL pDacl,
[in, optional] PACL pSacl
);
Paramètres
[in] handle
Handle de l’objet pour lequel définir des informations de sécurité.
[in] ObjectType
Membre de l’énumération SE_OBJECT_TYPE qui indique le type d’objet identifié par le paramètre handle .
[in] SecurityInfo
Ensemble d’indicateurs de bits qui indiquent le type d’informations de sécurité à définir. Ce paramètre peut être une combinaison des indicateurs de bits SECURITY_INFORMATION .
[in, optional] psidOwner
Pointeur vers un SID qui identifie le propriétaire de l’objet. Le SID doit être un sid qui peut être affecté en tant que SID propriétaire d’un descripteur de sécurité. Le paramètre SecurityInfo doit inclure l’indicateur OWNER_SECURITY_INFORMATION. Ce paramètre peut être NULL si vous ne définissez pas le SID du propriétaire.
[in, optional] psidGroup
Pointeur vers un SID qui identifie le groupe principal de l’objet . Le paramètre SecurityInfo doit inclure l’indicateur GROUP_SECURITY_INFORMATION. Ce paramètre peut être NULL si vous ne définissez pas le SID du groupe principal.
[in, optional] pDacl
Pointeur vers le nouveau DACL pour l’objet . Ce paramètre est ignoré, sauf si la valeur du paramètre SecurityInfo inclut l’indicateur DACL_SECURITY_INFORMATION . Si la valeur du paramètre SecurityInfo inclut l’indicateur DACL_SECURITY_INFORMATION et que la valeur de ce paramètre est définie sur NULL, l’accès complet à l’objet est accordé à tout le monde. Pour plus d’informations sur les DACL Null , consultez Création d’une liste de contrôle d’accès.
[in, optional] pSacl
Pointeur vers la nouvelle SACL pour l’objet . Le paramètre SecurityInfo doit inclure l’un des indicateurs suivants : SACL_SECURITY_INFORMATION, LABEL_SECURITY_INFORMATION, ATTRIBUTE_SECURITY_INFORMATION, SCOPE_SECURITY_INFORMATION ou BACKUP_SECURITY_INFORMATION. Si vous définissez SACL_SECURITY_INFORMATION ou SCOPE_SECURITY_INFORMATION, le privilège SE_SECURITY_NAME doit être activé pour l’appelant. Ce paramètre peut être NULL si vous ne définissez pas la liste SACL.
Valeur retournée
Si la fonction réussit, la fonction retourne ERROR_SUCCESS.
Si la fonction échoue, elle retourne un code d’erreur différent de zéro défini dans WinError.h.
Remarques
Si vous définissez la liste de contrôle d’accès discrétionnaire (DACL) ou des éléments de la liste de contrôle d’accès système (SACL) d’un objet, le système propage automatiquement toutes les entrées de contrôle d’accès (ACÉ) pouvant être héritées aux objets enfants existants, conformément aux règles d’héritage ACE.
Vous pouvez utiliser la fonction SetSecurityInfo avec les types d’objets suivants :
- Fichiers ou répertoires locaux ou distants sur un fichier NTFS
- Canaux nommés
- Imprimantes locales ou distantes
- Services Windows locaux ou distants
- Partages réseau
- les clés de Registre
- Sémaphores, événements, mutex et minuteurs d’attente
- Processus, threads, travaux et objets de mappage de fichiers
- Postes de travail et postes de travail de fenêtre
- Objets du service d’annuaire
La fonction SetSecurityInfo ne réorganise pas les ACL autorisées ou refusées en fonction de l’ordre par défaut. Lors de la propagation d’ACL pouvant être hérités à des objets enfants existants, SetSecurityInfo met de l’ordre après tous les ACÉ non-hérités dans les DACL des objets enfants.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | aclapi.h |
Bibliothèque | Advapi32.lib |
DLL | Advapi32.dll |