Função AddConditionalAce (winbase.h)

A função AddConditionalAce adiciona uma ACE ( entrada de controle de acesso condicional) à ACL ( lista de controle de acesso ) especificada. Uma ACE condicional especifica uma condição lógica que é avaliada durante as verificações de acesso.

Sintaxe

BOOL AddConditionalAce(
  [in, out] PACL   pAcl,
  [in]      DWORD  dwAceRevision,
  [in]      DWORD  AceFlags,
  [in]      UCHAR  AceType,
  [in]      DWORD  AccessMask,
  [in]      PSID   pSid,
  [in]      PWCHAR ConditionStr,
  [out]     DWORD  *ReturnLength
);

Parâmetros

[in, out] pAcl

Um ponteiro para uma ACL. Essa função adiciona uma ACE a essa ACL.

O valor desse parâmetro não pode ser NULL.

[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. Esse parâmetro pode ser uma combinação dos seguintes valores.

Valor Significado
CONTAINER_INHERIT_ACE
A ACE é herdada por objetos de contêiner.
INHERIT_ONLY_ACE
A ACE não se aplica ao objeto ao qual a ACL é atribuída, mas pode ser herdada por objetos filho.
INHERITED_ACE
Indica uma ACE herdada. Esse sinalizador permite que operações que alterem a segurança em uma árvore de objetos modifiquem ACEs herdadas enquanto não alteram ACEs que foram aplicadas diretamente ao objeto.
NO_PROPAGATE_INHERIT_ACE
Os bits OBJECT_INHERIT_ACE e CONTAINER_INHERIT_ACE não são propagados para uma ACE herdada.
OBJECT_INHERIT_ACE
O ACE é herdado por objetos não pertencentes a contêineres.

[in] AceType

O tipo da ACE.

Esse pode ser um dos valores a seguir.

Valor Significado
ACCESS_ALLOWED_CALLBACK_ACE_TYPE
0x9
ACE de retorno de chamada permitido pelo acesso que usa a estrutura ACCESS_ALLOWED_CALLBACK_ACE .
ACCESS_DENIED_CALLBACK_ACE_TYPE
0xA
ACE de retorno de chamada negado pelo acesso que usa a estrutura ACCESS_DENIED_CALLBACK_ACE .
SYSTEM_AUDIT_CALLBACK_ACE_TYPE
0xD
ACE de retorno de chamada de auditoria do sistema que usa a estrutura SYSTEM_AUDIT_CALLBACK_ACE .

[in] AccessMask

Especifica a máscara de direitos de acesso a ser concedida ao SID especificado.

[in] pSid

Um ponteiro para o SID que representa um usuário, grupo ou conta de logon que recebe acesso.

[in] ConditionStr

Uma cadeia de caracteres que especifica a instrução condicional a ser avaliada para o ACE.

[out] ReturnLength

O tamanho, em bytes, da ACL. Se o buffer especificado pelo parâmetro pACL não for de tamanho suficiente, o valor desse parâmetro será o tamanho necessário.

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. Veja a seguir os possíveis valores de erro.

Código de retorno Descrição
ERROR_INSUFFICIENT_BUFFER
A nova ACE não se encaixa no buffer pAcl .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winbase.h (incluir Windows.h)
Biblioteca Advapi32.lib
DLL Advapi32.dll