Funzione AddResourceAttributeAce (securitybaseapi.h)

La funzione AddResourceAttributeAce aggiunge una voce di controllo di accesso SYSTEM_RESOURCE_ATTRIBUTE_ACE(ACE) alla fine di un elenco di controllo di accesso di sistema (SACL). Una struttura SYSTEM_RESOURCE_ATTRIBUTE_ACE specifica un nome di attributo e un elenco ordinato di valori di elementi associati a una risorsa e potenzialmente usati durante i controlli di accesso. Il set di diritti di accesso standard è definito nell'argomento Standard Access Rights.

Sintassi

BOOL AddResourceAttributeAce(
  [in, out] PACL                                   pAcl,
  [in]      DWORD                                  dwAceRevision,
  [in]      DWORD                                  AceFlags,
  [in]      DWORD                                  AccessMask,
  [in]      PSID                                   pSid,
  [in]      PCLAIM_SECURITY_ATTRIBUTES_INFORMATION pAttributeInfo,
  [out]     PDWORD                                 pReturnLength
);

Parametri

[in, out] pAcl

Puntatore a un elenco di controllo di accesso (ACL). Questa funzione aggiunge un ace a questo elenco di controllo di accesso. Il valore di questo parametro non può essere NULL. L'ACE è sotto forma di struttura SYSTEM_RESOURCE_ATTRIBUTE_ACE.

[in] dwAceRevision

Specifica il livello di revisione dell'ACL da modificare. Questo valore può essere ACL_REVISION o ACL_REVISION_DS. Utilizzare ACL_REVISION_DS se l'ACL contiene ACL specifici dell'oggetto.

[in] AceFlags

Set di flag di bit che controllano l'ereditarietà ACE. La funzione imposta questi flag nel AceFlags membro della struttura ACE_HEADER della nuova ACE.

Per coerenza con l'interfaccia utente delle autorizzazioni avanzate per i file di Windows 8, le applicazioni devono specificare i flag CONTAINER_INHERIT_ACE e OBJECT_INHERIT_ACE nel parametro AceFlags.

Questo parametro può essere una combinazione dei valori seguenti.

Valore Significato
CONTAINER_INHERIT_ACE
2 (0x2)
L'ace viene ereditato dagli oggetti contenitore.
INHERIT_ONLY_ACE
8 (0x8)
L'ace non si applica all'oggetto a cui è assegnato l'ace, ma può essere ereditato dagli oggetti figlio.
INHERITED_ACE
16 (0x10)
Indica un ace ereditato. Questo flag consente operazioni che modificano la sicurezza in un albero di oggetti per modificare gli ACL ereditati senza modificare gli ACL applicati direttamente all'oggetto.
NO_PROPAGATE_INHERIT_ACE
4 (0x4)
I bit OBJECT_INHERIT_ACE e CONTAINER_INHERIT_ACE non vengono propagati a un ace ereditato.
OBJECT_INHERIT_ACE
1 (0x1)
L'ace viene ereditato da oggetti non contenitore.

[in] AccessMask

Deve essere zero per Windows 8 e Windows Server 2012.

[in] pSid

Deve essere il SID Everyone (S-1-1-0) per Windows 8 e Windows Server 2012.

[in] pAttributeInfo

Specifica le informazioni sull'attributo che verranno aggiunte dopo il SID nell'ace.

[out] pReturnLength

Dimensioni, in byte, del buffer ACL effettivo utilizzato. Se il buffer specificato dal parametro pAcl non è sufficientemente grande, il valore di questo parametro è la dimensione totale necessaria per il buffer ACL.

Valore restituito

Se la funzione ha esito positivo, restituisce TRUE.

Se la funzione non riesce, restituisce FALSE. Per ottenere informazioni estese sull'errore, chiamare GetLastError.

Fabbisogno

Requisito Valore
client minimo supportato Windows 8 [solo app desktop]
server minimo supportato Windows Server 2012 [solo app desktop]
piattaforma di destinazione Finestre
intestazione securitybaseapi.h (include Windows.h)
libreria Kernel32.lib
dll Kernel32.dll

Vedere anche

diritti di accesso standard