estructura ACCESS_ALLOWED_OBJECT_ACE (winnt.h)
La estructura ACCESS_ALLOWED_OBJECT_ACE define una entrada de control de acceso (ACE) que controla el acceso a un objeto, a un conjunto de propiedades o a una propiedad. La ACE contiene un conjunto de derechos de acceso, un GUID que identifica el tipo de objeto y un identificador de seguridad (SID) que identifica al administrador de confianza al que el sistema concederá acceso. La ACE también contiene un GUID y un conjunto de marcas que controlan la herencia de la 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 la ACE por objetos secundarios. El miembro AceType de la estructura 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 el sistema permitirá al administrador de confianza.
Flags
Conjunto de marcas de bits que indican si los miembros ObjectType y InheritedObjectType están presentes. Este parámetro puede ser uno o más de los siguientes valores.
ObjectType
Este miembro solo existe si el bit de ACE_OBJECT_TYPE_PRESENT está establecido en el miembro Flags . De lo contrario, el miembro InheritedObjectType sigue inmediatamente después del miembro Flags .
Si este miembro existe, es una estructura GUID que identifica un conjunto de propiedades, una propiedad, un derecho extendido o un tipo de objeto secundario. El propósito de este GUID depende de los derechos de acceso especificados en el miembro Mask .
InheritedObjectType
Este miembro solo existe si el bit de ACE_INHERITED_OBJECT_TYPE_PRESENT está establecido en el miembro Flags .
Si este miembro existe, es una estructura GUID 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 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 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 (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 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 contenga un ACCESS_ALLOWED_OBJECT_ACE debe especificar el número de revisión ACL_REVISION_DS en su encabezado de ACL .
Los derechos de acceso especificados por el miembro Mask se conceden a cualquier administrador que posea 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 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 ACCESS_ALLOWED_OBJECT_ACE fuera de una ACL, 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 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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de