Función RegGetKeySecurity (winreg.h)
La función RegGetKeySecurity recupera una copia del descriptor de seguridad que protege la clave del Registro abierta especificada.
Sintaxis
LSTATUS RegGetKeySecurity(
[in] HKEY hKey,
[in] SECURITY_INFORMATION SecurityInformation,
[out, optional] PSECURITY_DESCRIPTOR pSecurityDescriptor,
[in, out] LPDWORD lpcbSecurityDescriptor
);
Parámetros
[in] hKey
Identificador de una clave abierta para la que se va a recuperar el descriptor de seguridad.
[in] SecurityInformation
Valor de SECURITY_INFORMATION que indica la información de seguridad solicitada.
[out, optional] pSecurityDescriptor
Puntero a un búfer que recibe una copia del descriptor de seguridad solicitado.
[in, out] lpcbSecurityDescriptor
Puntero a una variable que especifica el tamaño, en bytes, del búfer al que apunta el parámetro pSecurityDescriptor . Cuando la función devuelve, la variable contiene el número de bytes escritos en el búfer.
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. Puede usar la función FormatMessage con la marca FORMAT_MESSAGE_FROM_SYSTEM para obtener una descripción genérica del error.
Comentarios
Si el búfer especificado por el parámetro pSecurityDescriptor es demasiado pequeño, la función devuelve ERROR_INSUFFICIENT_BUFFER y el parámetro lpcbSecurityDescriptor contiene el número de bytes necesarios para el descriptor de seguridad solicitado.
Para leer el propietario, el grupo o la lista de control de acceso discrecional (DACL) desde el descriptor de seguridad de la clave, se debe haber concedido el proceso de llamada READ_CONTROL acceso cuando se abrió el identificador. Para obtener READ_CONTROL acceso, el autor de la llamada debe ser el propietario de la clave o la DACL de la clave debe conceder el acceso.
Para leer la lista de control de acceso del sistema (SACL) desde el descriptor de seguridad, se debe haber concedido al proceso de llamada ACCESS_SYSTEM_SECURITY acceso cuando se abrió la clave. La manera correcta 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.
Requisitos
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winreg.h (incluya Windows.h) |
Library | Advapi32.lib |
Archivo DLL | Advapi32.dll |