Compartir a través de


estructura ACCESS_ALLOWED_OBJECT_ACE (winnt.h)

La estructura ACCESS_ALLOWED_OBJECT_ACE define un entrada de control de acceso (ACE) que controla el acceso a un objeto, un conjunto de propiedades o una propiedad. La ACE contiene un conjunto de derechos de acceso, un guid de que identifica el tipo de objeto y un identificador de seguridad (SID) que identifica el administrador al que el sistema concederá acceso. La ACE también contiene una GUID y un conjunto de marcas que controlan la herencia de ace por objetos secundarios.

Sintaxis

typedef struct _ACCESS_ALLOWED_OBJECT_ACE {
  ACE_HEADER  Header;
  ACCESS_MASK Mask;
  DWORD       Flags;
  GUID        ObjectType;
  GUID        InheritedObjectType;
  DWORD       SidStart;
} ACCESS_ALLOWED_OBJECT_ACE, *PACCESS_ALLOWED_OBJECT_ACE;

Miembros

Header

ACE_HEADER estructura que especifica el tamaño y el tipo de ACE. También contiene marcas que controlan la herencia de ace por objetos secundarios. El miembro AceType de la estructura de ACE_HEADER debe establecerse en ACCESS_ALLOWED_OBJECT_ACE_TYPE y el miembro AceSize debe establecerse en el número total de bytes asignados para la estructura de ACCESS_ALLOWED_OBJECT_ACE.

Mask

Un ACCESS_MASK que especifica los derechos de acceso que permitirá el sistema al administrador de .

Flags

Conjunto de marcas de bits que indican si están presentes los ObjectType y InheritedObjectType miembros. Este parámetro puede ser uno o varios de los siguientes valores.

Valor Significado
0
Ni objectType ni inheritedObjectType están presentes. El miembro SidStart sigue inmediatamente después del miembro Flags.
ACE_OBJECT_TYPE_PRESENT
ObjectType está presente y contiene un GUID de .

Si no se especifica este valor, el miembro InheritedObjectType sigue inmediatamente después del miembro Flags.

ACE_INHERITED_OBJECT_TYPE_PRESENT
InheritedObjectType está presente y contiene un GUID de .

Si no se especifica este valor, todos los tipos de objetos secundarios pueden heredar la ACE.

ObjectType

Este miembro solo existe si el bit de ACE_OBJECT_TYPE_PRESENT se establece en el miembro Flags. De lo contrario, el miembro InheritedObjectType sigue inmediatamente después del miembro Flags.

Si este miembro existe, es un GUID estructura que identifica un conjunto de propiedades, una propiedad, un derecho extendido o un tipo de objeto secundario. El propósito de este GUID de depende de los derechos de acceso especificados en el miembro Mask.

Valor Significado
ADS_RIGHT_DS_CONTROL_ACCESS
El guid ObjectTypeidentifica un derecho de acceso extendido.
ADS_RIGHT_DS_CREATE_CHILD
ElObjectType identifica un tipo de objeto secundario. La ACE controla el derecho del administrador para crear este tipo de objeto secundario.
ADS_RIGHT_DS_READ_PROP
El ObjectTypeGUID identifica un conjunto de propiedades o una propiedad del objeto. La ACE controla el derecho del administrador para leer la propiedad o el conjunto de propiedades.
ADS_RIGHT_DS_WRITE_PROP
El ObjectTypeGUID identifica un conjunto de propiedades o una propiedad del objeto. La ACE controla el derecho del administrador para escribir la propiedad o el conjunto de propiedades.
ADS_RIGHT_DS_SELF
El guid de ObjectTypeidentifica una escritura validada.

InheritedObjectType

Este miembro solo existe si el bit de ACE_INHERITED_OBJECT_TYPE_PRESENT está establecido en el miembro Flags.

Si existe este miembro, es una estructura GUID de que identifica el tipo de objeto secundario que puede heredar la ACE. La herencia también se controla mediante las marcas de herencia de la ACE_HEADER, así como 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 de ACE_OBJECT_TYPE_PRESENT, el miembro InheritedObjectType comienza en el desplazamiento especificado por el miembro objectType de .

SidStart

Especifica el primer DWORD de un SID que identifica el administrador al que se conceden los derechos 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 (ya sea ACE_OBJECT_TYPE_PRESENT o ACE_INHERITED_OBJECT_TYPE_PRESENT), el miembro SidStart comienza en el desplazamiento especificado por el miembro InheritedObjectType.

Observaciones

Si no se especifica ni el ObjectType ni InheritedObjectTypeguid, la estructura de ACCESS_ALLOWED_OBJECT_ACE tiene la misma semántica que las usadas por la estructura ACCESS_ALLOWED_ACE. En ese caso, use la estructura ACCESS_ALLOWED_ACE porque es más pequeña y eficaz.

Una ACL que contiene un ACCESS_ALLOWED_OBJECT_ACE debe especificar el número de revisión ACL_REVISION_DS en su encabezado de de ACL.

Los derechos de acceso especificados por el miembro de Mask se conceden a cualquier administrador que posee un SID habilitado que coincida con el SID almacenado en el miembro SidStart.

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

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2003 [solo aplicaciones de escritorio]
encabezado de winnt.h (incluya Windows.h)

Consulte también

ACE de

de ACL

AddAccessAllowedObjectAce

GUID de

de SID