Función SetEntriesInAclA (aclapi.h)

La función SetEntriesInAcl crea una nueva lista de control de acceso (ACL) combinando el nuevo control de acceso o la información de control de auditoría en una estructura 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 pListOfExplicitEntries .

[in, optional] pListOfExplicitEntries

Puntero a una matriz de estructuras de EXPLICIT_ACCESS 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.

Comentarios

Cada entrada de la matriz de estructuras de EXPLICIT_ACCESS especifica información de control de acceso o de control de auditoría para 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 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 en una lista de control de acceso del sistema (SACL). Tenga en cuenta que SetEntriesInAcl no impide mezclar información de control de acceso y 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 EXPLICIT_ACCESS especifica si se van a permitir, denegar o revocar los 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, consulte ACCESS_MODE.

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

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

  • 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, consulte 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 usa 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 neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado aclapi.h
Library Advapi32.lib
Archivo DLL Advapi32.dll

Consulte también

ACCESS_ALLOWED_ACE

ACCESS_DENIED_ACE

ACL

Control de acceso

Funciones básicas de Access Control

EXPLICIT_ACCESS

LocalFree

SYSTEM_AUDIT_ACE