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) |