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

Vue d’ensemble des Access Control client/serveur

CreatePrivateObjectSecurityEx

DestroyPrivateObjectSecurity

GENERIC_MAPPING

GetPrivateObjectSecurity

GetTokenInformation

OpenProcessToken

SECURITY_DESCRIPTOR

SECURITY_IMPERSONATION_LEVEL

SetPrivateObjectSecurity