CreatePrivateObjectSecurity, fonction (securitybaseapi.h)
La fonction CreatePrivateObjectSecurity alloue et initialise un descripteur de sécurité auto-relatif pour un nouvel objet privé. Un serveur protégé appelle cette fonction lorsqu’il crée un objet privé.
Pour spécifier le GUID de type d’objet du nouvel objet ou contrôler la façon dont les entrées de contrôle d’accès (ACÉ) sont héritées, utilisez la fonction CreatePrivateObjectSecurityEx .
Syntaxe
BOOL CreatePrivateObjectSecurity(
[in, optional] PSECURITY_DESCRIPTOR ParentDescriptor,
[in, optional] PSECURITY_DESCRIPTOR CreatorDescriptor,
[out] PSECURITY_DESCRIPTOR *NewDescriptor,
[in] BOOL IsDirectoryObject,
[in, optional] HANDLE Token,
[in] PGENERIC_MAPPING GenericMapping
);
Paramètres
[in, optional] ParentDescriptor
Pointeur vers le descripteur de sécurité du répertoire parent dans lequel un nouvel objet est créé. S’il n’existe aucun répertoire parent, ce paramètre peut être NULL.
[in, optional] CreatorDescriptor
Pointeur vers un descripteur de sécurité fourni par le créateur de l’objet. Si le créateur de l’objet ne transmet pas explicitement d’informations de sécurité pour le nouvel objet, ce paramètre est destiné à être NULL.
[out] NewDescriptor
Pointeur vers une variable qui reçoit un pointeur vers le descripteur de sécurité auto-relatif nouvellement alloué. L’appelant doit appeler la fonction DestroyPrivateObjectSecurity pour libérer ce descripteur de sécurité.
[in] IsDirectoryObject
Spécifie si le nouvel objet est un conteneur. La valeur TRUE indique que l’objet contient d’autres objets, tels qu’un répertoire.
[in, optional] Token
Handle du jeton d’accès pour le processus client pour le compte duquel l’objet est créé. S’il s’agit d’un jeton d’emprunt d’identité, il doit être au niveau SecurityIdentification ou supérieur. Pour obtenir une description complète du niveau d’emprunt d’identité SecurityIdentification, consultez le SECURITY_IMPERSONATION_LEVEL type énuméré.
Un jeton client est utilisé pour récupérer les informations de sécurité par défaut du nouvel objet, telles que son propriétaire par défaut, son groupe principal et sa liste de contrôle d’accès discrétionnaire. Le jeton doit être ouvert pour un accès TOKEN_QUERY .
Si toutes les conditions suivantes sont remplies, le handle doit être ouvert pour l’accès TOKEN_DUPLICATE en plus de l’accès TOKEN_QUERY .
- Le handle de jeton fait référence à un jeton principal.
- Le descripteur de sécurité du jeton contient un ou plusieurs ACL avec le SID OwnerRights .
- Un descripteur de sécurité est spécifié pour le paramètre CreatorDescriptor .
- L’appelant de cette fonction ne définit pas l’indicateur SEF_AVOID_OWNER_RESTRICTION dans le paramètre AutoInheritFlags .
[in] GenericMapping
Pointeur vers une structure GENERIC_MAPPING qui spécifie le mappage de chaque droit générique à des droits spécifiques pour l’objet.
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.
Remarques
Si une liste de contrôle d’accès système (SACL) est spécifiée dans la SECURITY_DESCRIPTOR spécifiée par le paramètre CreatorDescriptor , le paramètre Token doit avoir le privilège SE_SECURITY_NAME activé. La fonction CreatePrivateObjectSecurity vérifie ce privilège et peut générer des audits pendant le processus.
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 | securitybaseapi.h (inclure Windows.h) |
Bibliothèque | Advapi32.lib |
DLL | Advapi32.dll |
Voir aussi
Fonctions de Access Control client/serveur