Compartilhar via


Função RtlAddAce (ntifs.h)

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

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 as ACEs especificadas a essa ACL.

[in] AceRevision

Nível de revisão de ACL do ACE a ser adicionado. Os requisitos de versão do Windows são os 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 deve ser ACL_REVISION_DS se a ACL em 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.

Valor de retorno

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

Código de retorno Descrição
STATUS_BUFFER_TOO_SMALL As novas 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.

Observações

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
de cliente com suporte mínimo Windows Server 2003 com SP1
da Plataforma de Destino Universal
cabeçalho ntifs.h (inclua Ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe (modo kernel); Ntdll.dll (modo de usuário)
IRQL <= APC_LEVEL

Consulte também

ace

de ACL

rtlAddAccessAllowedAce

rtlCreateAcl

rtlDeleteAce

rtlGetAce