Función GetSecurityInfo (aclapi.h)
La función GetSecurityInfo recupera una copia del descriptor de seguridad de un objeto especificado por un identificador.
Sintaxis
DWORD GetSecurityInfo(
[in] HANDLE handle,
[in] SE_OBJECT_TYPE ObjectType,
[in] SECURITY_INFORMATION SecurityInfo,
[out, optional] PSID *ppsidOwner,
[out, optional] PSID *ppsidGroup,
[out, optional] PACL *ppDacl,
[out, optional] PACL *ppSacl,
[out, optional] PSECURITY_DESCRIPTOR *ppSecurityDescriptor
);
Parámetros
[in] handle
Identificador del objeto desde el que se va a recuperar la información de seguridad.
[in] ObjectType
SE_OBJECT_TYPE valor de enumeración que indica el tipo de objeto.
[in] SecurityInfo
Conjunto de marcas de bits que indican el tipo de información de seguridad que se va a recuperar. Este parámetro puede ser una combinación de las marcas de bits de SECURITY_INFORMATION .
[out, optional] ppsidOwner
Puntero a una variable que recibe un puntero al SID de propietario en el descriptor de seguridad devuelto en ppSecurityDescriptor. El puntero devuelto solo es válido si establece la marca OWNER_SECURITY_INFORMATION. Este parámetro puede ser NULL si no necesita el SID de propietario.
[out, optional] ppsidGroup
Puntero a una variable que recibe un puntero al SID del grupo principal en el descriptor de seguridad devuelto. El puntero devuelto solo es válido si establece la marca GROUP_SECURITY_INFORMATION. Este parámetro puede ser NULL si no necesita el SID del grupo.
[out, optional] ppDacl
Puntero a una variable que recibe un puntero a la DACL en el descriptor de seguridad devuelto. El puntero devuelto solo es válido si establece la marca DACL_SECURITY_INFORMATION. Este parámetro puede ser NULL si no necesita la DACL.
[out, optional] ppSacl
Puntero a una variable que recibe un puntero al SACL en el descriptor de seguridad devuelto. El puntero devuelto solo es válido si establece la marca SACL_SECURITY_INFORMATION. Este parámetro puede ser NULL si no necesita la SACL.
[out, optional] ppSecurityDescriptor
Puntero a una variable que recibe un puntero al descriptor de seguridad del objeto. Cuando haya terminado de usar el puntero, libere el búfer devuelto llamando a la función LocalFree .
Este parámetro es necesario si alguno de los parámetros ppsidOwner, ppsidGroup, ppDacl o ppSacl no es NULL.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS.
Si se produce un error en la función, el valor devuelto es un código de error distinto de cero definido en WinError.h.
Comentarios
Si los parámetros ppsidOwner, ppsidGroup, ppDacl y ppSacl no son NULL y el parámetro SecurityInfo especifica que se recuperarán del objeto, esos parámetros apuntarán a los parámetros correspondientes en el descriptor de seguridad devuelto en ppSecurityDescriptor.
Para leer el propietario, el grupo o la DACL del descriptor de seguridad del objeto, el proceso de llamada se debe haber concedido READ_CONTROL acceso cuando se abrió el identificador. Para obtener READ_CONTROL acceso, el autor de la llamada debe ser el propietario del objeto o la DACL del objeto debe conceder el acceso.
Para leer sacl desde el descriptor de seguridad, se debe haber concedido al proceso de llamada ACCESS_SYSTEM_SECURITY acceso cuando se abrió el identificador. La manera adecuada de obtener este acceso es habilitar el privilegio SE_SECURITY_NAME en el token actual del autor de la llamada, abrir el identificador para ACCESS_SYSTEM_SECURITY acceso y, a continuación, deshabilitar el privilegio. Para obtener información sobre las implicaciones de seguridad de habilitar privilegios, consulte Ejecución con privilegios especiales.
Puede usar la función GetSecurityInfo con los siguientes tipos de objetos:
- Archivos o directorios locales o remotos en un sistema de archivos 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 servicio interactivas y escritorios
- Objetos de servicio de directorio
Ejemplos
Para obtener un ejemplo que usa esta función, vea Buscar el propietario de un objeto de archivo.
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
Información general del control de acceso