Condividi tramite


Funzione CreatePrivateObjectSecurity (securitybaseapi.h)

La funzione CreatePrivateObjectSecurity alloca e inizializza un descrittore di sicurezza self-relative per un nuovo oggetto privato. Un server protetto chiama questa funzione quando crea un nuovo oggetto privato.

Per specificare il GUID del tipo di oggetto del nuovo oggetto o controllare il modo in cui vengono ereditate le voci di controllo di accesso ,usare la funzione CreatePrivateObjectSecurityEx .

Sintassi

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
);

Parametri

[in, optional] ParentDescriptor

Puntatore al descrittore di sicurezza per la directory padre in cui viene creato un nuovo oggetto. Se non esiste alcuna directory padre, questo parametro può essere NULL.

[in, optional] CreatorDescriptor

Puntatore a un descrittore di sicurezza fornito dall'autore dell'oggetto. Se l'autore dell'oggetto non passa in modo esplicito le informazioni di sicurezza per il nuovo oggetto, questo parametro deve essere NULL.

[out] NewDescriptor

Puntatore a una variabile che riceve un puntatore al descrittore di sicurezza auto-relativo appena allocato. Il chiamante deve chiamare la funzione DestroyPrivateObjectSecurity per liberare questo descrittore di sicurezza.

[in] IsDirectoryObject

Specifica se il nuovo oggetto è un contenitore. Un valore true indica che l'oggetto contiene altri oggetti, ad esempio una directory.

[in, optional] Token

Handle per il token di accesso per il processo client per il cui conto viene creato l'oggetto. Se si tratta di un token di rappresentazione, deve essere a livello di SecurityIdentification o superiore. Per una descrizione completa del livello di rappresentazione di SecurityIdentification, vedere il tipo enumerato SECURITY_IMPERSONATION_LEVEL .

Un token client viene usato per recuperare le informazioni di sicurezza predefinite per il nuovo oggetto, ad esempio il proprietario predefinito, il gruppo primario e l'elenco di controllo di accesso discrezionale. Il token deve essere aperto per l'accesso TOKEN_QUERY .

Se tutte le condizioni seguenti sono vere, l'handle deve essere aperto per l'accesso TOKEN_DUPLICATE oltre all'accesso TOKEN_QUERY.

  • L'handle del token fa riferimento a un token primario.
  • Il descrittore di sicurezza del token contiene uno o più ACL con il SID OwnerRights .
  • Per il parametro CreatorDescriptor viene specificato un descrittore di sicurezza.
  • Il chiamante di questa funzione non imposta il flag di SEF_AVOID_OWNER_RESTRICTION nel parametro AutoInheritFlags .

[in] GenericMapping

Puntatore a una struttura GENERIC_MAPPING che specifica il mapping da ogni diritto generico a diritti specifici per l'oggetto.

Valore restituito

Se la funzione ha esito positivo, la funzione restituisce un valore diverso da zero.

Se la funzione ha esito negativo, restituisce zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Se viene specificato un elenco di controllo di accesso del sistema (SACL) nel SECURITY_DESCRIPTOR specificato dal parametro CreatorDescriptor, il parametro Token deve avere il privilegio SE_SECURITY_NAME abilitato. La funzione CreatePrivateObjectSecurity controlla questo privilegio e può generare controlli durante il processo.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione securitybaseapi.h (include Windows.h)
Libreria Advapi32.lib
DLL Advapi32.dll

Vedi anche

Funzioni di Controllo di accesso client/server

Panoramica Controllo di accesso client/server

CreatePrivateObjectSecurityEx

DestroyPrivateObjectSecurity

GENERIC_MAPPING

GetPrivateObjectSecurity

GetTokenInformation

OpenProcessToken

SECURITY_DESCRIPTOR

SECURITY_IMPERSONATION_LEVEL

SetPrivateObjectSecurity