Compartir a través de


Función SetEntriesInAclA (aclapi.h)

La función setEntriesInAcl crea una nueva lista de control de acceso (ACL) mediante la combinación de información de control de acceso o auditoría nueva en una estructura de de ACL existente.

Sintaxis

DWORD SetEntriesInAclA(
  [in]           ULONG              cCountOfExplicitEntries,
  [in, optional] PEXPLICIT_ACCESS_A pListOfExplicitEntries,
  [in, optional] PACL               OldAcl,
  [out]          PACL               *NewAcl
);

Parámetros

[in] cCountOfExplicitEntries

Número de estructuras de EXPLICIT_ACCESS en la matriz de pListOfExplicitEntries.

[in, optional] pListOfExplicitEntries

Puntero a una matriz de EXPLICIT_ACCESS estructuras que describen la información de control de acceso que se va a combinar en la ACL existente.

[in, optional] OldAcl

Puntero a la ACL existente. Este parámetro puede ser NULL, en cuyo caso, la función crea una nueva ACL basada en las entradas de EXPLICIT_ACCESS.

[out] NewAcl

Puntero a una variable que recibe un puntero a la nueva ACL. Si la función se ejecuta correctamente, debe llamar a la función LocalFree para liberar el búfer devuelto.

Valor devuelto

Si la función se ejecuta correctamente, la función devuelve ERROR_SUCCESS.

Si se produce un error en la función, devuelve un código de error distinto de cero definido en WinError.h.

Observaciones

Cada entrada de la matriz de estructuras de EXPLICIT_ACCESS especifica la información de control de acceso o de control de auditoría de un administrador especificado. Un administrador puede ser un valor de usuario, grupo u otro identificador de seguridad (SID), como un identificador de inicio de sesión de o un tipo de inicio de sesión (por ejemplo, un servicio de Windows o un trabajo por lotes). Puede usar un nombre o un SID para identificar a un administrador de confianza.

Puede usar la función setEntriesInAcl para modificar la lista de entradas de control de acceso (ACE) en una lista de control de acceso discrecional (DACL) o una lista de control de acceso del sistema (SACL) . Tenga en cuenta que setEntriesInAcl no impide mezclar información de control de acceso y de control de auditoría en la misma ACL; sin embargo, la ACL resultante contendrá entradas sin sentido.

Para una DACL, el miembro grfAccessMode de la estructura de EXPLICIT_ACCESS especifica si se deben permitir, denegar o revocar derechos de acceso para el administrador de confianza. Este miembro puede especificar uno de los siguientes valores:

  • GRANT_ACCESS
  • SET_ACCESS
  • DENY_ACCESS
  • REVOKE_ACCESS
Para obtener información sobre estos valores, vea ACCESS_MODE.

La función SetEntriesInAcl coloca las nuevas ACE denegadas de acceso al principio de la lista de ACL de la nueva ACL. Esta función coloca los nuevos ASE permitidos para el acceso justo antes de los ACE permitidos para el acceso existente.

Para una SACL, el miembro grfAccessMode de la estructura EXPLICIT_ACCESS puede especificar los siguientes valores:

  • REVOKE_ACCESS
  • SET_AUDIT_FAILURE
  • SET_AUDIT_SUCCESS
SET_AUDIT_FAILURE y SET_AUDIT_SUCCESS se pueden combinar. Para obtener información sobre estos valores, vea ACCESS_MODE.

La función SetEntriesInAcl coloca las nuevas ACE de auditoría del sistema al principio de la lista de ACL para la nueva ACL.

Ejemplos

Para obtener un ejemplo que use esta función, vea Modificar las ACL de un objeto o Crear un descriptor de seguridad para un nuevo objeto o tomar la propiedad del objeto.

Nota

El encabezado aclapi.h define SetEntriesInAcl como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP [aplicaciones de escritorio | Aplicaciones para UWP]
servidor mínimo admitido Windows Server 2003 [aplicaciones de escritorio | Aplicaciones para UWP]
de la plataforma de destino de Windows
encabezado de aclapi.h
biblioteca de Advapi32.lib
DLL de Advapi32.dll

Consulte también

ACCESS_ALLOWED_ACE

ACCESS_DENIED_ACE

de ACL

control de acceso

funciones básicas de control de acceso

EXPLICIT_ACCESS

localFree

SYSTEM_AUDIT_ACE