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
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
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 |