Funzione RtlAddAccessAllowedAceEx (ntifs.h)

La routine RtlAddAccessAllowedAceEx aggiunge una voce di controllo di accesso consentita per l'accesso (ACE) con flag ACE di ereditarietà a un elenco di controllo di accesso (ACL). L'accesso viene concesso all'identificatore di sicurezza specificato (SID).

Sintassi

NTSYSAPI NTSTATUS RtlAddAccessAllowedAceEx(
  [in, out] PACL        Acl,
  [in]      ULONG       AceRevision,
  [in]      ULONG       AceFlags,
  [in]      ACCESS_MASK AccessMask,
  [in]      PSID        Sid
);

Parametri

[in, out] Acl

Puntatore a un buffer allocato del chiamante che contiene l'elenco di controllo di controllo di accesso da modificare. RtlAddAccessAllowedAceEx aggiunge un ACE consentito per l'accesso alla fine di questo ACL. L'ACE è sotto forma di una struttura ACCESS_ALLOWED_ACE .

[in] AceRevision

Livello di revisione ACL dell'ace da aggiungere. Questo valore può essere ACL_REVISION o ACL_REVISION_DS. Deve essere ACL_REVISION_DS se l'ACL contiene un ACE specifico dell'oggetto.

[in] AceFlags

Maschera di bit che specifica i flag di eredita dell'ACE da aggiungere.

[in] AccessMask

Maschera di bit di uno o più flag ACCESS_MASK che specificano i diritti di accesso da concedere al SID specificato. Per altre informazioni, vedere la descrizione del parametro DesiredAccess di ZwCreateFile.

[in] Sid

Puntatore alla struttura SID che rappresenta un account utente, gruppo o account di accesso che viene concesso l'accesso.

Valore restituito

RtlAddAccessAllowedAceEx può restituire uno dei valori seguenti:

Codice restituito Descrizione
STATUS_SUCCESS L'ACE è stato aggiunto correttamente.
STATUS_ALLOTTED_SPACE_EXCEEDED Un nuovo ACE non rientra nell'ACL. È necessario un buffer ACL più grande. Per altre informazioni su come calcolare le dimensioni di un ACL, vedere RtlCreateAcl.
STATUS_INVALID_ACL L'ACL specificato non è formato correttamente.
STATUS_INVALID_PARAMETER Il parametro AceFlags non è valido.
STATUS_INVALID_SID La struttura SID specificata non è valida in modo strutturale.
STATUS_REVISION_MISMATCH L'oggetto AceRevision specificato non è noto o non è compatibile con quello dell'ACL.

Commenti

A differenza di RtlAddAccessAllowedAce, questa routine imposta i flag ACE di ereditarietà.

Per altre informazioni sul controllo di sicurezza e accesso, vedere Modello di sicurezza di Windows per sviluppatori driver e la documentazione su questi argomenti in Windows SDK, ad esempio:

Requisiti

Requisito Valore
Client minimo supportato Windows 2000
Piattaforma di destinazione Universale
Intestazione ntifs.h (include Ntifs.h, FltKernel.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Vedi anche

ACCESS_ALLOWED_ACE

ACCESS_MASK

ACE

ACL

RtlCreateAcl

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SID

SeAssignSecurity

ZwCreateFile