Función SetSecurityInfo (aclapi.h)
La función SetSecurityInfo establece la información de seguridad especificada en el descriptor de seguridad de un objeto especificado. El autor de la llamada identifica el objeto por un identificador.
Para establecer la SACL de un objeto, el autor de la llamada debe tener habilitado el privilegio SE_SECURITY_NAME .
Sintaxis
DWORD SetSecurityInfo(
[in] HANDLE handle,
[in] SE_OBJECT_TYPE ObjectType,
[in] SECURITY_INFORMATION SecurityInfo,
[in, optional] PSID psidOwner,
[in, optional] PSID psidGroup,
[in, optional] PACL pDacl,
[in, optional] PACL pSacl
);
Parámetros
[in] handle
Identificador del objeto para el que se va a establecer la información de seguridad.
[in] ObjectType
Miembro de la enumeración SE_OBJECT_TYPE que indica el tipo de objeto identificado por el parámetro handle .
[in] SecurityInfo
Conjunto de marcas de bits que indican el tipo de información de seguridad que se va a establecer. Este parámetro puede ser una combinación de las marcas de bits de SECURITY_INFORMATION .
[in, optional] psidOwner
Puntero a un SID que identifica al propietario del objeto. El SID debe ser uno que se pueda asignar como el SID propietario de un descriptor de seguridad. El parámetro SecurityInfo debe incluir la marca OWNER_SECURITY_INFORMATION. Este parámetro puede ser NULL si no establece el SID de propietario.
[in, optional] psidGroup
Puntero a un SID que identifica el grupo principal del objeto. El parámetro SecurityInfo debe incluir la marca GROUP_SECURITY_INFORMATION. Este parámetro puede ser NULL si no establece el SID del grupo principal.
[in, optional] pDacl
Puntero a la nueva DACL para el objeto . Este parámetro se omite a menos que el valor del parámetro SecurityInfo incluya la marca DACL_SECURITY_INFORMATION . Si el valor del parámetro SecurityInfo incluye la marca DACL_SECURITY_INFORMATION y el valor de este parámetro se establece en NULL, se concede acceso total al objeto a todos los usuarios. Para obtener información sobre las DACL nulas , consulte Creación de una DACL.
[in, optional] pSacl
Puntero al nuevo SACL para el objeto . El parámetro SecurityInfo debe incluir cualquiera de las marcas siguientes: SACL_SECURITY_INFORMATION, LABEL_SECURITY_INFORMATION, ATTRIBUTE_SECURITY_INFORMATION, SCOPE_SECURITY_INFORMATION o BACKUP_SECURITY_INFORMATION. Si establece SACL_SECURITY_INFORMATION o SCOPE_SECURITY_INFORMATION, el autor de la llamada debe tener habilitado el privilegio SE_SECURITY_NAME. Este parámetro puede ser NULL si no establece la SACL.
Valor devuelto
Si la función se realiza 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
Si va a establecer la lista de control de acceso discrecional (DACL) o cualquier elemento de la lista de control de acceso del sistema (SACL) de un objeto, el sistema propaga automáticamente las entradas de control de acceso (ACE) heredables a los objetos secundarios existentes, según las reglas de herencia ace.
Puede usar la función SetSecurityInfo con los siguientes tipos de objetos:
- Archivos o directorios locales o remotos en un NTFS
- Canalizaciones con nombre
- Impresoras locales o remotas
- Servicios locales o remotos de Windows
- Recursos compartidos de red
- Claves del Registro
- Semáforos, eventos, exclusiones mutuas y temporizadores de espera
- Procesos, subprocesos, trabajos y objetos de asignación de archivos
- Estaciones de ventana y escritorios
- Objetos de servicio de directorio
La función SetSecurityInfo no reordena los ACA permitidos o denegados de acceso según el orden preferido. Al propagar ASE heredables a objetos secundarios existentes, SetSecurityInfo coloca las ACE heredadas en orden después de todas las AEC no heredadas en las ACL de los objetos secundarios.
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 |