Compartir a través de


Función RtlAddAccessAllowedAceEx (ntifs.h)

La rutina RtlAddAccessAllowedAceEx agrega una entrada de control de acceso permitido (ACE ) con marcas ACE de herencia a una lista de control de acceso (ACL). El acceso se concede al identificador de seguridad (SID) especificado.

Sintaxis

NTSYSAPI NTSTATUS RtlAddAccessAllowedAceEx(
  [in, out] PACL        Acl,
  [in]      ULONG       AceRevision,
  [in]      ULONG       AceFlags,
  [in]      ACCESS_MASK AccessMask,
  [in]      PSID        Sid
);

Parámetros

[in, out] Acl

Puntero a un búfer asignado por el autor de la llamada que contiene la ACL que se va a modificar. RtlAddAccessAllowedAceEx agrega una ACE permitida por el acceso al final de esta ACL. La ACE tiene la forma de una estructura ACCESS_ALLOWED_ACE .

[in] AceRevision

Nivel de revisión de ACL del ACE que se va a agregar. 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.

[in] AceFlags

Máscara de bits que especifica las marcas heredadas de la ACE que se va a agregar.

[in] AccessMask

Máscara de bits de una o varias marcas de ACCESS_MASK que especifican los derechos de acceso que se van a conceder al SID especificado. Para obtener más información, vea la descripción del parámetro DesiredAccess de ZwCreateFile.

[in] Sid

Puntero a la estructura del SID que representa una cuenta de usuario, grupo o inicio de sesión a la que se concede acceso.

Valor devuelto

RtlAddAccessAllowedAceEx puede devolver uno de los siguientes valores:

Código devuelto Descripción
STATUS_SUCCESS La ACE se agregó correctamente.
STATUS_ALLOTTED_SPACE_EXCEEDED Una nueva ACE no cabe en la ACL. Se requiere un búfer de ACL mayor. Para obtener más información sobre cómo calcular el tamaño de una ACL, vea RtlCreateAcl.
STATUS_INVALID_ACL La ACL especificada no tiene el formato correcto.
STATUS_INVALID_PARAMETER El parámetro AceFlags no era válido.
STATUS_INVALID_SID La estructura de SID especificada no es estructuralmente válida.
STATUS_REVISION_MISMATCH El AceRevision especificado no se conoce o no es compatible con el de la ACL.

Comentarios

A diferencia de RtlAddAccessAllowedAce, esta rutina establece las marcas ACE de herencia.

Para obtener más información sobre la seguridad y el control de acceso, consulte Modelo de seguridad de Windows para desarrolladores de controladores y la documentación sobre estos temas en Windows SDK, como:

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000
Plataforma de destino Universal
Encabezado ntifs.h (incluya Ntifs.h, FltKernel.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Consulte también

ACCESS_ALLOWED_ACE

ACCESS_MASK

AS

ACL

RtlCreateAcl

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SID

SeAssignSecurity

ZwCreateFile