Función RegSaveKeyExA (winreg.h)
Guarda la clave especificada y todos sus subclaves y valores en un archivo del Registro, en el formato especificado.
Las aplicaciones que realicen copias de seguridad o restaure el estado del sistema, incluidos los archivos del sistema y los subárboles del Registro, deben usar el Servicio de instantáneas de volumen en lugar de las funciones del Registro.
Sintaxis
LSTATUS RegSaveKeyExA(
[in] HKEY hKey,
[in] LPCSTR lpFile,
[in, optional] const LPSECURITY_ATTRIBUTES lpSecurityAttributes,
[in] DWORD Flags
);
Parámetros
[in] hKey
Identificador de una clave del Registro abierta.
Esta función no admite la clave predefinida HKEY_CLASSES_ROOT .
[in] lpFile
Nombre del archivo en el que se van a guardar la clave y las subclaves especificadas. Si el archivo ya existe, se produce un error en la función.
El nuevo archivo tiene el atributo archive.
Si la cadena no incluye una ruta de acceso, el archivo se crea en el directorio actual del proceso de llamada para una clave local o en el directorio %systemroot%\system32 para una clave remota.
[in, optional] lpSecurityAttributes
Puntero a una estructura de SECURITY_ATTRIBUTES que especifica un descriptor de seguridad para el nuevo archivo. Si lpSecurityAttributes es NULL, el archivo obtiene un descriptor de seguridad predeterminado. Las ACL de un descriptor de seguridad predeterminado para un archivo se heredan de su directorio primario.
[in] Flags
Formato de la clave guardada o subárbol. Este parámetro puede ser uno de los valores siguientes.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS.
Si la función no se ejecuta correctamente, el valor devuelto es 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.
Si se especifica más de uno de los valores posibles enumerados anteriormente para el parámetro Flags en una llamada a esta función (por ejemplo, si dos o más valores son OR'ed) o si se especifica REG_NO_COMPRESSION y hKey especifica una clave que no es la raíz de un subárbol, esta función devuelve ERROR_INVALID_PARAMETER.
Comentarios
A diferencia de RegSaveKey, esta función no admite la clave predefinida HKEY_CLASSES_ROOT .
Si hKey representa una clave en un equipo remoto, la ruta de acceso descrita por lpFile es relativa al equipo remoto.
La función RegSaveKeyEx solo guarda claves no volátiles. No guarda claves volátiles. Una clave se convierte en volátil o no volátil en su creación; consulte RegCreateKeyEx.
Puede usar el archivo creado por RegSaveKeyEx en llamadas posteriores a la función RegLoadKey, RegReplaceKey o RegRestoreKey . Si RegSaveKeyEx falla parte de su operación, el archivo estará dañado y las llamadas posteriores a RegLoadKey, RegReplaceKey o RegRestoreKey para el archivo producirán un error.
No se recomienda usar RegSaveKeyEx junto con RegRestoreKey para copiar subárboles en el registro. Este método no desencadena notificaciones y puede invalidar los identificadores usados por otras aplicaciones. En su lugar, use la función SHCopyKey o la función RegCopyTree .
El proceso de llamada debe tener habilitado el privilegio SE_BACKUP_NAME. Para más información, consulte Ejecución con privilegios especiales.
Nota
El encabezado winreg.h define RegSaveKeyEx 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 [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 |