Funzione AddConditionalAce (winbase.h)

La funzione AddConditionalAce aggiunge una voce di controllo di accesso condizionale (ACE) all'elenco di controllo di accesso (ACL) specificato. Un ace condizionale specifica una condizione logica valutata durante i controlli di accesso.

Sintassi

BOOL AddConditionalAce(
  [in, out] PACL   pAcl,
  [in]      DWORD  dwAceRevision,
  [in]      DWORD  AceFlags,
  [in]      UCHAR  AceType,
  [in]      DWORD  AccessMask,
  [in]      PSID   pSid,
  [in]      PWCHAR ConditionStr,
  [out]     DWORD  *ReturnLength
);

Parametri

[in, out] pAcl

Puntatore a un elenco di controllo di accesso. Questa funzione aggiunge un ace a questo elenco di controllo di accesso.

Il valore di questo parametro non può essere NULL.

[in] dwAceRevision

Specifica il livello di revisione dell'ACL da modificare. Questo valore può essere ACL_REVISION o ACL_REVISION_DS. Usare 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 membro AceFlags della struttura ACE_HEADER del nuovo ACE. Questo parametro può essere una combinazione dei valori seguenti.

Valore Significato
CONTAINER_INHERIT_ACE
L'ace viene ereditato dagli oggetti contenitore.
INHERIT_ONLY_ACE
L'ace non si applica all'oggetto a cui è assegnato l'ACL, ma può essere ereditato dagli oggetti figlio.
INHERITED_ACE
Indica un ace ereditato. Questo flag consente alle 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
I bit OBJECT_INHERIT_ACE e CONTAINER_INHERIT_ACE non vengono propagati a un ace ereditato.
OBJECT_INHERIT_ACE
L'ACE viene ereditato da oggetti non contenitore.

[in] AceType

Tipo dell'ace.

Può trattarsi di uno dei valori seguenti.

Valore Significato
ACCESS_ALLOWED_CALLBACK_ACE_TYPE
0x9
ACE di callback consentito dall'accesso che usa la struttura ACCESS_ALLOWED_CALLBACK_ACE .
ACCESS_DENIED_CALLBACK_ACE_TYPE
0xA
ACE di callback negato all'accesso che usa la struttura ACCESS_DENIED_CALLBACK_ACE .
SYSTEM_AUDIT_CALLBACK_ACE_TYPE
0xD
ACE di callback del controllo di sistema che usa la struttura SYSTEM_AUDIT_CALLBACK_ACE .

[in] AccessMask

Specifica la maschera dei diritti di accesso da concedere al SID specificato.

[in] pSid

Puntatore al SID che rappresenta un utente, un gruppo o un account di accesso a cui viene concesso l'accesso.

[in] ConditionStr

Stringa che specifica l'istruzione condizionale da valutare per l'ace.

[out] ReturnLength

Dimensione, in byte, dell'elenco di controllo di accesso. Se il buffer specificato dal parametro pACL non è di dimensioni sufficienti, il valore di questo parametro è la dimensione necessaria.

Valore restituito

Se la funzione ha esito positivo, restituisce TRUE.

Se la funzione ha esito negativo, restituisce FALSE. Per informazioni sugli errori estesi, chiamare GetLastError. Di seguito sono riportati i possibili valori di errore.

Codice restituito Descrizione
ERROR_INSUFFICIENT_BUFFER
La nuova ace non rientra nel buffer pAcl .

Requisiti

Requisito Valore
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winbase.h (include Windows.h)
Libreria Advapi32.lib
DLL Advapi32.dll