Compartir a través de


Estructura de ACL (wdm.h)

La estructura de ACL es el encabezado de una lista de control de acceso (ACL). Una ACL completa consta de una estructura de ACL seguida de una lista ordenada de cero o más entradas de control de acceso (ACE).

Sintaxis

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

Miembros

AclRevision

Nivel de revisión de la ACL.

Microsoft Windows NT 4.0 y versiones anteriores: Este valor debe ser ACL_REVISION.

Microsoft Windows 2000 y versiones posteriores: Este valor puede ser ACL_REVISION o ACL_REVISION_DS. Debe ser ACL_REVISION_DS si la ACL contiene una ACE específica del objeto.

Sbz1

Un byte cero de relleno que alinea el miembro AclRevision en un límite de 16 bits.

AclSize

Tamaño, en bytes, de la ACL. Este valor incluye la estructura de ACL y todos los ASE.

AceCount

Número de ACE almacenadas en la ACL.

Sbz2

Dos bytes cero de relleno que alinean la estructura de ACL en un límite de 32 bits.

Comentarios

Una ACL incluye una lista secuencial de cero o más ACE. Los ACE individuales de una ACL se numeran de 0 a n, donde n+1 es el número de ACL en la ACL. Al editar una ACL, un controlador hace referencia a una ACE dentro de la ACL por su índice.

Hay dos tipos de ACL: discrecional y del sistema.

Un ACL discrecional (DACL) se controla mediante el propietario de un objeto o cualquier persona a la que se le conceda acceso WRITE_DAC al objeto. Especifica el acceso que usuarios y grupos concretos pueden tener a un objeto. Por ejemplo, el propietario de un archivo puede usar una DACL para controlar qué usuarios y grupos pueden y no pueden tener acceso al archivo.

Un objeto también puede tener información de seguridad de nivel de sistema asociada, en forma de ACL del sistema (SACL) controlada por un administrador del sistema. Una SACL puede permitir que el administrador del sistema audite los intentos de obtener acceso a un objeto.

Actualmente se definen tres estructuras ACE:

Atributo Descripción
ACCESS_ALLOWED_ACE Concede derechos especificados a un usuario o grupo. Esta ACE se almacena en una DACL.
ACCESS_DENIED_ACE Deniega los derechos especificados a un usuario o grupo. Esta ACE se almacena en una DACL.
SYSTEM_AUDIT_ACE Especifica qué tipos de acceso provocarán auditorías de nivel de sistema. Esta ACE se almacena en una SACL.
 

Actualmente no se admite una cuarta estructura ACE, SYSTEM_ALARM_ACE.

La estructura de la ACL se debe tratar como si fuera opaca, y los controladores no deben intentar trabajar directamente con sus miembros. Para asegurarse de que las ACL son semánticamente correctas, los controladores pueden usar las funciones enumeradas en la sección Ver también para crear y manipular ACL.

Las estructuras ACL y ACE deben alinearse en límites de 32 bits.

Requisitos

Requisito Valor
Header wdm.h (incluya Wdm.h)

Consulte también

ACCESS_ALLOWED_ACE

ACCESS_DENIED_ACE

AS

RtlAddAccessAllowedAce

RtlCreateAcl

RtlGetAce

RtlSetDaclSecurityDescriptor

SYSTEM_ALARM_ACE

SYSTEM_AUDIT_ACE

TOKEN_DEFAULT_DACL