Função AddResourceAttributeAce (securitybaseapi.h)

A função AddResourceAttributeAce adiciona uma ACE (entrada de controle de acesso) SYSTEM_RESOURCE_ATTRIBUTE_ACE ao final de uma SACL (lista de controle de acesso do sistema). Uma estrutura SYSTEM_RESOURCE_ATTRIBUTE_ACE especifica um nome de atributo e uma lista ordenada por valor de elementos associados a um recurso e potencialmente usados durante as verificações de acesso. O conjunto de direitos de acesso padrão é definido no tópico Direitos de Acesso Padrão .

Sintaxe

BOOL AddResourceAttributeAce(
  [in, out] PACL                                   pAcl,
  [in]      DWORD                                  dwAceRevision,
  [in]      DWORD                                  AceFlags,
  [in]      DWORD                                  AccessMask,
  [in]      PSID                                   pSid,
  [in]      PCLAIM_SECURITY_ATTRIBUTES_INFORMATION pAttributeInfo,
  [out]     PDWORD                                 pReturnLength
);

Parâmetros

[in, out] pAcl

Um ponteiro para uma ACL ( lista de controle de acesso ). Essa função adiciona um ACE a essa ACL. O valor desse parâmetro não pode ser NULL. O ACE está na forma de uma estrutura de SYSTEM_RESOURCE_ATTRIBUTE_ACE .

[in] dwAceRevision

Especifica o nível de revisão da ACL que está sendo modificada. Esse valor pode ser ACL_REVISION ou ACL_REVISION_DS. Use ACL_REVISION_DS se a ACL contiver ACEs específicas do objeto.

[in] AceFlags

Um conjunto de sinalizadores de bits que controlam a herança da ACE. A função define esses sinalizadores no membro AceFlags da estrutura ACE_HEADER do novo ACE.

Para consistência com a interface do usuário Windows 8 Advanced File Permissions, os aplicativos devem especificar os sinalizadores CONTAINER_INHERIT_ACE e OBJECT_INHERIT_ACE no parâmetro AceFlags.

Esse parâmetro pode ser uma combinação dos seguintes valores.

Valor Significado
CONTAINER_INHERIT_ACE
2 (0x2)
O ACE é herdado pelos objetos de contêiner.
INHERIT_ONLY_ACE
8 (0x8)
O ACE não se aplica ao objeto ao qual o ACE é atribuído, mas pode ser herdado por objetos filho.
INHERITED_ACE
16 (0x10)
Indica um ACE herdado. Esse sinalizador permite que operações que alterem a segurança em uma árvore de objetos modifiquem ACEs herdados, sem alterar ACEs que foram aplicadas diretamente ao objeto.
NO_PROPAGATE_INHERIT_ACE
4 (0x4)
Os bits OBJECT_INHERIT_ACE e CONTAINER_INHERIT_ACE não são propagados para um ACE herdado.
OBJECT_INHERIT_ACE
1 (0x1)
O ACE é herdado por objetos que não são de contêiner.

[in] AccessMask

Deve ser zero para Windows 8 e Windows Server 2012.

[in] pSid

Deve ser o SID de Todos (S-1-1-0) para Windows 8 e Windows Server 2012.

[in] pAttributeInfo

Especifica as informações de atributo que serão acrescentadas após o SID no ACE.

[out] pReturnLength

O tamanho, em bytes, do buffer de ACL real usado. Se o buffer especificado pelo parâmetro pAcl não for grande o suficiente, o valor desse parâmetro será o tamanho total necessário para o buffer de ACL.

Retornar valor

Se a função for bem-sucedida, ela retornará TRUE.

Se a função falhar, ela retornará FALSE. Para obter informações de erro estendidas, chame GetLastError.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho securitybaseapi.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

Direitos de Acesso Padrão