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

Consulte también

FormatMessage

Access Control de bajo nivel

Funciones de Access Control de bajo nivel

RegDeleteKey

RegOpenKeyEx

RegSetKeySecurity

SECURITY_INFORMATION