Função RtlAddAce (ntifs.h)

A rotina RtlAddAce adiciona uma ou mais ACEs (entradas de controle de acesso) a uma ACL (lista de controle de acesso) especificada.

Sintaxe

NTSYSAPI NTSTATUS RtlAddAce(
  [in, out] PACL  Acl,
  [in]      ULONG AceRevision,
  [in]      ULONG StartingAceIndex,
  [in]      PVOID AceList,
  [in]      ULONG AceListLength
);

Parâmetros

[in, out] Acl

Ponteiro para a ACL a ser modificada. RtlAddAce adiciona os ACEs especificados a essa ACL.

[in] AceRevision

Nível de revisão de ACL do ACE a ser adicionado. As exigências de versão do Windows são as seguintes:

Valor Significado
ACL_REVISION O nível de revisão válido em todas as versões do Windows.
ACL_REVISION_DS O nível de revisão válido a partir do Windows 2000.

AceRevision deverá ser ACL_REVISION_DS se a ACL na Acl contiver um ACE específico do objeto.

[in] StartingAceIndex

Especifica a posição na lista de ACEs da ACL na qual adicionar novos ACEs. Um valor zero insere os ACEs no início da lista. Um valor de MAXULONG acrescenta os ACEs ao final da lista.

[in] AceList

Ponteiro para um buffer que contém uma lista de um ou mais ACEs a serem adicionados à ACL especificada. Os ACEs na lista devem ser armazenados contíguamente.

[in] AceListLength

Tamanho, em bytes, do buffer de entrada apontado pelo parâmetro AceList .

Retornar valor

RtlAddAce retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como um dos seguintes:

Código de retorno Descrição
STATUS_BUFFER_TOO_SMALL Os novos ACEs não se encaixam na ACL. Um buffer de ACL maior é necessário. STATUS_BUFFER_TOO_SMALL é um código de erro.
STATUS_INVALID_PARAMETER Um dos valores de parâmetro era inválido. Os possíveis motivos incluem que a ACL especificada é inválida ou a revisão especificada é desconhecida, não é compatível com revisões na lista ace ou não é compatível com a revisão da ACL. STATUS_INVALID_PARAMETER é um código de erro.

Comentários

Para obter informações sobre como calcular o tamanho de uma ACL, consulte a seção Comentários da entrada de referência para RtlCreateAcl.

Para obter um ponteiro para um ACE em uma ACL, use RtlGetAce.

Para excluir um ACE de uma ACL, use RtlDeleteAce.

Para adicionar um ACE permitido pelo acesso a uma ACL, use RtlAddAccessAllowedAce.

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.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Server 2003 com SP1
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclua Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe (modo kernel); Ntdll.dll (modo de usuário)
IRQL <= APC_LEVEL

Confira também

ACE

ACL

RtlAddAccessAllowedAce

RtlCreateAcl

RtlDeleteAce

RtlGetAce