estrutura ACCESS_ALLOWED_CALLBACK_OBJECT_ACE (winnt.h)
A estrutura ACCESS_ALLOWED_CALLBACK_OBJECT_ACE define uma ACE (entrada de controle de acesso ) que controla o acesso permitido a um objeto, conjunto de propriedades ou propriedade. O ACE contém um conjunto de direitos de acesso, um GUID que identifica o tipo de objeto e um SID ( identificador de segurança ) que identifica o administrador a quem o sistema concederá acesso. O ACE também contém um GUID e um conjunto de sinalizadores que controlam a herança do ACE por objetos filho.
Quando a função AuthzAccessCheck é chamada, cada estrutura ACCESS_ALLOWED_CALLBACK_OBJECT_ACE contida na DACL de uma estrutura SECURITY_DESCRIPTOR passada por um ponteiro para a função AuthzAccessCheck invoca uma chamada para a função AuthzAccessCheckCallback definida pelo aplicativo, na qual um ponteiro para a estrutura de ACCESS_ALLOWED_CALLBACK_OBJECT_ACE encontrada é passado no parâmetro pAce .
Sintaxe
typedef struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
} ACCESS_ALLOWED_CALLBACK_OBJECT_ACE, *PACCESS_ALLOWED_CALLBACK_OBJECT_ACE;
Membros
Header
ACE_HEADER estrutura que especifica o tamanho e o tipo de ACE. Ele também contém sinalizadores que controlam a herança do ACE por objetos filho. O membro AceType da estrutura ACE_HEADER deve ser definido como ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE e o membro AceSize deve ser definido como o número total de bytes alocados para a estrutura de ACCESS_ALLOWED_CALLBACK_OBJECT_ACE .
Mask
Um ACCESS_MASK que especifica os direitos de acesso que o sistema permitirá ao administrador.
Flags
Um conjunto de sinalizadores de bits que indicam se os membros ObjectType e InheritedObjectType estão presentes. Esse parâmetro pode usar um dos valores a seguir.
ObjectType
Esse membro só existirá se o bit ACE_OBJECT_TYPE_PRESENT estiver definido no membro Flags . Caso contrário, o membro InheritedObjectType segue imediatamente após o membro Flags .
Se esse membro existir, será uma estrutura GUID que identifica um conjunto de propriedades, uma propriedade, um direito estendido ou um tipo de objeto filho. A finalidade desse GUID depende dos direitos de acesso especificados no membro Mask .
InheritedObjectType
Esse membro só existirá se o bit ACE_INHERITED_OBJECT_TYPE_PRESENT estiver definido no membro Flags .
Se esse membro existir, será uma estrutura GUID que identifica o tipo de objeto filho que pode herdar o ACE. A herança também é controlada pelos sinalizadores de herança no ACE_HEADER, bem como por qualquer proteção contra herança colocada nos objetos filho.
O deslocamento desse membro pode variar. Se o membro Flags não contiver o sinalizador ACE_OBJECT_TYPE_PRESENT, o membro InheritedObjectType será iniciado no deslocamento especificado pelo membro ObjectType .
SidStart
O primeiro DWORD do SID de um administrador. Os bytes restantes do SID são armazenados na memória contígua após o membro SidStart . Esse SID pode ser acrescentado com os dados do aplicativo.
Comentários
Se nem o ObjectType nem o GUIDInheritedObjectType forem especificados, a estrutura ACCESS_ALLOWED_CALLBACK_OBJECT_ACE terá a mesma semântica que as usadas pela estrutura ACCESS_ALLOWED_CALLBACK_ACE. Nesse caso, use a estrutura ACCESS_ALLOWED_CALLBACK_ACE porque ela é menor e mais eficiente.
Uma ACL que contém um ACCESS_ALLOWED_CALLBACK_OBJECT_ACE deve especificar o número de revisão ACL_REVISION_DS em seu cabeçalho ACL .
Os direitos de acesso especificados pelo membro Mask são concedidos a qualquer administrador que possua um SID habilitado que corresponda ao SID armazenado no membro SidStart .
Quando uma estrutura ACCESS_ALLOWED_CALLBACK_OBJECT_ACE é criada, a memória suficiente deve ser alocada para acomodar as estruturas GUID nos membros ObjectType e InheritedObjectType , se houver um ou ambos, bem como para acomodar o SID completo do administrador no membro SidStart e a memória contígua que a segue.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Cabeçalho | winnt.h (inclua Windows.h) |