SetNamedSecurityInfoW, fonction (aclapi.h)
La fonction SetNamedSecurityInfo 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 son nom.
Syntaxe
DWORD SetNamedSecurityInfoW(
[in] LPWSTR pObjectName,
[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] pObjectName
Pointeur vers une chaîne null-terminated qui spécifie le nom de l’objet pour lequel définir les informations de sécurité. Il peut s’agir du nom d’un fichier ou d’un répertoire local ou distant sur un système de fichiers NTFS, un partage réseau, une clé de Registre, un sémaphore, un événement, un mutex, un mappage de fichiers ou un minuteur pouvant être attendu.
Pour obtenir des descriptions des formats de chaîne pour les différents types d’objets, consultez SE_OBJECT_TYPE.
[in] ObjectType
Valeur de l’énumération SE_OBJECT_TYPE qui indique le type d’objet nommé par le paramètre pObjectName.
[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 une structure SID qui identifie le propriétaire de l’objet. Si l’appelant n’a pas la constante SeRestorePrivilege (voir Privilege Constants), ce SID doit être contenu dans le jeton de l’appelant et avoir activé l’autorisation SE_GROUP_OWNER. Le paramètre SecurityInfo doit inclure l’indicateur de OWNER_SECURITY_INFORMATION. Pour définir le propriétaire, l’appelant doit avoir WRITE_OWNER accès à l’objet ou activer le privilège SE_TAKE_OWNERSHIP_NAME. Si vous ne définissez pas le siD propriétaire , ce paramètre peut être NULL.
[in, optional] psidGroup
Pointeur vers un SID qui identifie le groupe principal de l’objet. Le paramètre SecurityInfo doit inclure l’indicateur de GROUP_SECURITY_INFORMATION. Si vous ne définissez pas le SID du groupe principal, ce paramètre peut être NULL.
[in, optional] pDacl
Pointeur vers la nouvelle liste DACL de l’objet. Le paramètre SecurityInfo doit inclure l’indicateur de DACL_SECURITY_INFORMATION. L’appelant doit avoir WRITE_DAC accès à l’objet ou être le propriétaire de l’objet. Si vous ne définissez pas daCL, ce paramètre peut être NULL.
[in, optional] pSacl
Pointeur vers la nouvelle liste de contrôle d’accès partagé 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, l’appelant doit activer le privilège SE_SECURITY_NAME. Si vous ne définissez pas la liste de contrôle d’accès partagé, ce paramètre peut être NULL.
Valeur de retour
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 tous les é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 héritées (ACL) aux objets enfants existants, conformément aux règles de d’héritage.
Vous pouvez utiliser la fonction SetNamedSecurityInfo avec les types d’objets suivants :
- Fichiers ou répertoires locaux ou distants sur un fichier NTFS
- Imprimantes locales ou distantes
- Services Windows locaux ou distants
- Partages réseau
- Clés de Registre
- Sémaphores, événements, mutex et minuteurs pouvant être attendus
- Objets de mappage de fichiers
- Objets de service d’annuaire
Cette fonction transfère des informations dans texte en clair. Les informations transférées par cette fonction sont signées, sauf si la signature a été désactivée pour le système, mais aucun chiffrement n’est effectué.
Lorsque vous mettez à jour les droits d’accès d’un dossier indiqué par un chemin UNC, par exemple \Test\TestFolder, l’ACE hérité d’origine est supprimé et le chemin du volume complet n’est pas inclus.
Exemples
Pour obtenir un exemple qui utilise cette fonction, consultez Modification des ACL d’un objet ou Prise de propriété d’objet.
Note
L’en-tête aclapi.h définit SetNamedSecurityInfo 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 | Applications UWP] |
serveur minimum pris en charge | Windows Server 2003 [applications de bureau | Applications UWP] |
plateforme cible | Windows |
d’en-tête | aclapi.h |
bibliothèque | Advapi32.lib |
DLL | Advapi32.dll |