Estrutura de ACL (wdm.h)

A estrutura acl é o cabeçalho de uma ACL (lista de controle de acesso). Uma ACL completa consiste em uma estrutura de ACL seguida por uma lista ordenada de zero ou mais ACE (entradas de controle de acesso).

Sintaxe

typedef struct _ACL {
  UCHAR  AclRevision;
  UCHAR  Sbz1;
  USHORT AclSize;
  USHORT AceCount;
  USHORT Sbz2;
} ACL;

Membros

AclRevision

Nível de revisão da ACL.

Microsoft Windows NT 4.0 e versões anteriores: esse valor deve ser ACL_REVISION.

Microsoft Windows 2000 e posterior: Esse valor pode ser ACL_REVISION ou ACL_REVISION_DS. Ele deverá ser ACL_REVISION_DS se a ACL contiver uma ACE específica do objeto.

Sbz1

Um byte zero de preenchimento que alinha o membro AclRevision em um limite de 16 bits.

AclSize

Tamanho, em bytes, da ACL. Esse valor inclui a estrutura de ACL e todos os ACEs.

AceCount

Número de ACEs armazenados na ACL.

Sbz2

Dois bytes zero de preenchimento que alinham a estrutura de ACL em um limite de 32 bits.

Comentários

Uma ACL inclui uma lista sequencial de zero ou mais ACEs. As ACEs individuais em uma ACL são numeradas de 0 a n, em que n+1 é o número de ACEs na ACL. Ao editar uma ACL, um driver se refere a uma ACE dentro da ACL por seu índice.

Há dois tipos de ACL: discricionário e sistema.

Uma ACL discricionária (DACL) é controlada pelo proprietário de um objeto ou por qualquer pessoa concedida WRITE_DAC acesso ao objeto. Ela especifica o acesso que determinados usuários e grupos podem ter a um objeto. Por exemplo, o proprietário de um arquivo pode usar uma DACL para controlar quais usuários e grupos podem e não podem ter acesso ao arquivo.

Um objeto também pode ter informações de segurança no nível do sistema associadas a ele, na forma de uma SACL (ACL do sistema) controlada por um administrador do sistema. Uma SACL pode permitir que o administrador do sistema audite todas as tentativas de obter acesso a um objeto.

Três estruturas ACE estão definidas no momento:

Atributo Descrição
ACCESS_ALLOWED_ACE Concede direitos especificados a um usuário ou grupo. Essa ACE é armazenada em uma DACL.
ACCESS_DENIED_ACE Nega direitos especificados a um usuário ou grupo. Essa ACE é armazenada em uma DACL.
SYSTEM_AUDIT_ACE Especifica quais tipos de acesso causarão auditorias no nível do sistema. Essa ACE é armazenada em uma SACL.
 

No momento, não há suporte para uma quarta estrutura ACE, SYSTEM_ALARM_ACE.

A estrutura de ACL deve ser tratada como se fosse opaca, e os drivers não devem tentar trabalhar diretamente com seus membros. Para garantir que as ACLs estejam semanticamente corretas, os drivers podem usar as funções listadas na seção Consulte também para criar e manipular ACLs.

As estruturas ACL e ACE devem estar alinhadas em limites de 32 bits.

Requisitos

Requisito Valor
Cabeçalho wdm.h (include Wdm.h)

Confira também

ACCESS_ALLOWED_ACE

ACCESS_DENIED_ACE

ACE

RtlAddAccessAllowedAce

RtlCreateAcl

RtlGetAce

RtlSetDaclSecurityDescriptor

SYSTEM_ALARM_ACE

SYSTEM_AUDIT_ACE

TOKEN_DEFAULT_DACL