Función RtlAddAce (ntifs.h)

La rutina RtlAddAce agrega una o varias entradas de control de acceso (ACE) a una lista de control de acceso (ACL) especificada.

Sintaxis

NTSYSAPI NTSTATUS RtlAddAce(
  [in, out] PACL  Acl,
  [in]      ULONG AceRevision,
  [in]      ULONG StartingAceIndex,
  [in]      PVOID AceList,
  [in]      ULONG AceListLength
);

Parámetros

[in, out] Acl

Puntero a la ACL que se va a modificar. RtlAddAce agrega los ACA especificados a esta ACL.

[in] AceRevision

Nivel de revisión de ACL del ACE que se va a agregar. Las solicitudes de versión de Windows son las siguientes:

Valor Significado
ACL_REVISION El nivel de revisión válido en todas las versiones de Windows.
ACL_REVISION_DS El nivel de revisión válido a partir de Windows 2000.

AceRevision debe ser ACL_REVISION_DS si la ACL de Acl contiene una ACE específica del objeto.

[in] StartingAceIndex

Especifica la posición de la lista de ACL de ACL en la que se van a agregar nuevos ASE. Un valor de cero inserta los ASE al principio de la lista. Un valor de MAXULONG anexa los ASE al final de la lista.

[in] AceList

Puntero a un búfer que contiene una lista de uno o varios ACA que se van a agregar a la ACL especificada. Los ASE de la lista deben almacenarse de forma contigua.

[in] AceListLength

Tamaño, en bytes, del búfer de entrada al que apunta el parámetro AceList .

Valor devuelto

RtlAddAce devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como uno de los siguientes:

Código devuelto Descripción
STATUS_BUFFER_TOO_SMALL Los nuevos ASE no caben en la ACL. Se requiere un búfer de ACL mayor. STATUS_BUFFER_TOO_SMALL es un código de error.
STATUS_INVALID_PARAMETER Uno de los valores de parámetro no era válido. Entre los posibles motivos se incluyen que la ACL especificada no es válida o que la revisión especificada es desconocida, no es compatible con las revisiones de la lista ACE o no es compatible con la revisión de la ACL. STATUS_INVALID_PARAMETER es un código de error.

Comentarios

Para obtener información sobre cómo calcular el tamaño de una ACL, vea la sección Comentarios de la entrada de referencia para RtlCreateAcl.

Para obtener un puntero a una ACE en una ACL, use RtlGetAce.

Para eliminar una ACE de una ACL, use RtlDeleteAce.

Para agregar una ACE permitida por el acceso a una ACL, use RtlAddAccessAllowedAce.

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.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Server 2003 con SP1
Plataforma de destino Universal
Encabezado ntifs.h (incluya Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe (modo kernel); Ntdll.dll (modo de usuario)
IRQL <= APC_LEVEL

Consulte también

AS

ACL

RtlAddAccessAllowedAce

RtlCreateAcl

RtlDeleteAce

RtlGetAce