Partager via


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
La fonction SetNamedSecurityInfo ne réorganise pas les AE autorisées ou refusées par accès en fonction de l’ordre préféré. Lors de la propagation d’ACL héritées à des objets enfants existants, SetNamedSecurityInfo place les AE héritées dans l’ordre après l’ensemble des AACL non héritées dans les DACLs des objets enfants.

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

Voir aussi

de liste de contrôle d’accès

de contrôle d’accès

fonctions de contrôle d’accès de base

GetNamedSecurityInfo

GetSecurityInfo

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SE_OBJECT_TYPE

SID

SetSecurityInfo