estructura SYSTEM_AUDIT_OBJECT_ACE (winnt.h)

La estructura SYSTEM_AUDIT_OBJECT_ACE define una entrada de control de acceso (ACE) para una lista de control de acceso del sistema (SACL). La ACE puede auditar el acceso a un objeto o subobjeto, como conjuntos de propiedades o propiedades. La ACE contiene un conjunto de derechos de acceso, un GUID que identifica el tipo de objeto o subobjeto, y un identificador de seguridad (SID) que identifica al administrador de confianza para el que el sistema auditará el acceso. La ACE también contiene un GUID y un conjunto de marcadores que controlan la herencia de la ACE mediante objetos secundarios.

Sintaxis

typedef struct _SYSTEM_AUDIT_OBJECT_ACE {
  ACE_HEADER  Header;
  ACCESS_MASK Mask;
  DWORD       Flags;
  GUID        ObjectType;
  GUID        InheritedObjectType;
  DWORD       SidStart;
} SYSTEM_AUDIT_OBJECT_ACE, *PSYSTEM_AUDIT_OBJECT_ACE;

Miembros

Header

Estructura ACE_HEADER que especifica el tamaño y el tipo de ACE. Contiene marcas que controlan la herencia de la ACE por objetos secundarios. La estructura también contiene marcas que indican si la ACE audita los intentos de acceso correctos, los intentos de acceso erróneos o ambos. El miembro AceType de la estructura ACE_HEADER debe establecerse en SYSTEM_AUDIT_OBJECT_ACE_TYPE y el miembro AceSize debe establecerse en el número total de bytes asignados para la estructura SYSTEM_AUDIT_OBJECT_ACE .

Mask

Un ACCESS_MASK que especifica los derechos de acceso que el sistema auditará para los intentos de acceso por parte del administrador de confianza.

Flags

Conjunto de marcas de bits que indican si los miembros ObjectType y InheritedObjectType contienen GUID. Este miembro puede ser una combinación de los valores siguientes. Establezca todos los bits sin definir en cero.

Valor Significado
ACE_OBJECT_TYPE_PRESENT
El miembro ObjectType contiene un GUID.
ACE_INHERITED_OBJECT_TYPE_PRESENT
El miembro InheritedObjectType contiene un GUID.

ObjectType

Estructura GUID que identifica un conjunto de propiedades, una propiedad, un derecho extendido o un tipo de objeto secundario.

Este miembro solo es válido si el bit de ACE_OBJECT_TYPE_PRESENT está establecido en el miembro Flags . De lo contrario, se omite ObjectType .

El propósito de este GUID depende de los derechos de acceso especificados en el miembro Mask .

Este miembro puede ser uno de los valores siguientes.

Valor Significado
ADS_RIGHT_DS_READ_PROP o ADS_RIGHT_DS_WRITE_PROP
El GUID de ObjectType identifica un conjunto de propiedades o una propiedad del objeto. La ACE controla la auditoría de los intentos del administrador de confianza de leer o escribir la propiedad o el conjunto de propiedades.
ADS_RIGHT_DS_CONTROL_ACCESS
El GUID de ObjectType identifica un derecho de acceso extendido.
ADS_RIGHT_DS_CREATE_CHILD
El GUID objectType identifica un tipo de objeto secundario. La ACE controla la auditoría de los intentos del administrador de confianza de crear este tipo de objeto secundario.
ADS_RIGHT_DS_SELF
El GUID de ObjectType identifica una escritura validada.

InheritedObjectType

Estructura GUID que identifica el tipo de objeto secundario que puede heredar la ACE.

Este miembro solo es válido si el bit de ACE_INHERITED_OBJECT_TYPE_PRESENT está establecido en el miembro Flags . Si no se establece ese bit, InheritedObjectType se omite y todos los tipos de objetos secundarios pueden heredar la ACE. En cualquier caso, la herencia también se controla mediante las marcas de herencia de la ACE_HEADER, así como por cualquier protección contra la herencia colocada en los objetos secundarios.

El desplazamiento de este miembro puede variar. Si el miembro Flags no contiene la marca ACE_OBJECT_TYPE_PRESENT, el miembro InheritedObjectType comienza en el desplazamiento especificado por el miembro ObjectType .

SidStart

Especifica el primer DWORD de un SID que identifica al administrador de confianza para el que se auditan los intentos de acceso. Los bytes restantes del SID se almacenan en memoria contigua después del miembro SidStart . Este SID se puede anexar con los datos de la aplicación.

El desplazamiento de este miembro puede variar. Si el miembro Flags es cero, el miembro SidStart comienza en el desplazamiento especificado por el miembro ObjectType . Si Flags contiene solo una marca (ACE_OBJECT_TYPE_PRESENT o ACE_INHERITED_OBJECT_TYPE_PRESENT), el miembro SidStart se inicia en el desplazamiento especificado por el miembro InheritedObjectType .

Comentarios

Si no se especifica objectType ni inheritedObjectType GUID, la estructura de SYSTEM_AUDIT_OBJECT_ACE tiene la misma semántica que la estructura de SYSTEM_AUDIT_ACE . En ese caso, use la estructura SYSTEM_AUDIT_ACE porque es más pequeña y eficaz.

Una ACL que contenga un SYSTEM_AUDIT_OBJECT_ACE debe especificar el número de revisión ACL_REVISION_DS en su estructura de ACE_HEADER .

Cuando se crea una estructura de SYSTEM_AUDIT_OBJECT_ACE , se debe asignar suficiente memoria para acomodar las estructuras GUID en los miembros ObjectType y InheritedObjectType , si existe una o ambas, así como para dar cabida al SID completo del administrador en el miembro SidStart y a la memoria contigua que le sigue.

Una estructura de SYSTEM_AUDIT_OBJECT_ACE se puede crear en una lista de control de acceso (ACL) mediante una llamada a la función AddAuditAccessObjectAce . Cuando se usa esta función, se asigna automáticamente la cantidad correcta de memoria necesaria para acomodar las estructuras GUID en los miembros ObjectType y InheritedObjectType , si existe una o ambas, así como para dar cabida al SID del administrador. Además, los valores de los miembros Header.AceType y Header.AceSize se establecen automáticamente. Cuando se crea una estructura de SYSTEM_AUDIT_OBJECT_ACE fuera de una ACL, se debe asignar suficiente memoria para acomodar las estructuras GUID en los miembros ObjectType y InheritedObjectType , si existe uno o ambos, así como para dar cabida al SID completo del administrador en el miembro SidStart y a la memoria contigua que lo sigue. Además, la aplicación debe establecer explícitamente los valores de los miembros Header.AceType y Header.AceSize .

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado winnt.h (incluye Windows.h)

Consulte también

ACL

AddAuditAccessObjectAce

GUID

SID