Função RtlAddAccessAllowedAceEx (ntifs.h)

A rotina RtlAddAccessAllowedAceEx adiciona uma ACE (entrada de controle de acesso) permitida pelo acesso com sinalizadores ACE de herança a uma ACL (lista de controle de acesso). O acesso é concedido ao SID (identificador de segurança) especificado.

Sintaxe

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

Parâmetros

[in, out] Acl

Um ponteiro para um buffer alocado pelo chamador que contém a ACL a ser modificada. RtlAddAccessAllowedAceEx adiciona um ACE permitido pelo acesso ao final desta ACL. O ACE está na forma de uma estrutura ACCESS_ALLOWED_ACE .

[in] AceRevision

Nível de revisão de ACL do ACE a ser adicionado. Esse valor pode ser ACL_REVISION ou ACL_REVISION_DS. Ele deverá ser ACL_REVISION_DS se a ACL contiver um ACE específico do objeto.

[in] AceFlags

Bitmask especificando os sinalizadores herdados do ACE a serem adicionados.

[in] AccessMask

Uma máscara de bits de um ou mais sinalizadores de ACCESS_MASK que especificam os direitos de acesso a serem concedidos ao SID especificado. Para obter mais informações, consulte a descrição do parâmetro DesiredAccess de ZwCreateFile.

[in] Sid

Um ponteiro para a estrutura sid que representa uma conta de usuário, grupo ou logon que está recebendo acesso.

Retornar valor

RtlAddAccessAllowedAceEx pode retornar um dos seguintes valores:

Código de retorno Descrição
STATUS_SUCCESS O ACE foi adicionado com êxito.
STATUS_ALLOTTED_SPACE_EXCEEDED Uma nova ACE não se encaixa na ACL. Um buffer de ACL maior é necessário. Para obter mais informações sobre como calcular o tamanho de uma ACL, consulte RtlCreateAcl.
STATUS_INVALID_ACL A ACL especificada não está formada corretamente.
STATUS_INVALID_PARAMETER O parâmetro AceFlags era inválido.
STATUS_INVALID_SID A estrutura sid especificada não é estruturalmente válida.
STATUS_REVISION_MISMATCH O AceRevision especificado não é conhecido ou não é compatível com o da ACL.

Comentários

Ao contrário de RtlAddAccessAllowedAce, essa rotina define os sinalizadores ace de herança.

Para obter mais informações sobre segurança e controle de acesso, consulte Modelo de segurança do Windows para desenvolvedores de driver e a documentação sobre esses tópicos no SDK do Windows, como:

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclua Ntifs.h, FltKernel.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Confira também

ACCESS_ALLOWED_ACE

ACCESS_MASK

ACE

ACL

RtlCreateAcl

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SID

SeAssignSecurity

ZwCreateFile