Compartir a través de


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 Significado
REG_STANDARD_FORMAT
1
La clave o subárbol se guarda en formato estándar. El formato estándar es el único formato admitido por Windows 2000.
REG_LATEST_FORMAT
2
La clave o subárbol se guarda en el formato más reciente. Se admite el formato más reciente a partir de Windows XP. Después de guardar la clave o subárbol en este formato, no se puede cargar en un sistema anterior.
REG_NO_COMPRESSION
4
El subárbol se guarda sin compresión, para ahorrar más rápido las operaciones. El parámetro hKey debe especificar la raíz de un subárbol en HKEY_LOCAL_MACHINE o HKEY_USERS. Por ejemplo, HKLM\SOFTWARE es la raíz de un subárbol.

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

Consulte también

RegCreateKeyEx

RegDeleteKey

RegLoadKey

RegReplaceKey

RegRestoreKey

RegSaveKey

Archivos del Registro

Funciones del Registro

SECURITY_ATTRIBUTES