Função RegSaveKeyA (winreg.h)
Salva a chave especificada e todas as subchaves e valores em um novo arquivo, no formato padrão.
Para especificar o formato da chave salva ou hive, use a função RegSaveKeyEx .
Os aplicativos que fazem backup ou restauram o estado do sistema, incluindo arquivos do sistema e hives do registro, devem usar o Serviço de Cópia de Sombra de Volume em vez das funções do Registro.
Sintaxe
LSTATUS RegSaveKeyA(
[in] HKEY hKey,
[in] LPCSTR lpFile,
[in, optional] const LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
Parâmetros
[in] hKey
Um identificador para uma chave aberta do Registro.
Esse identificador é retornado pela função RegCreateKeyEx ou RegOpenKeyEx ou pode ser uma das seguintes chaves predefinidas:
- HKEY_CLASSES_ROOT
- HKEY_CURRENT_USER
[in] lpFile
O nome do arquivo no qual a chave e as subchaves especificadas devem ser salvas. Se o arquivo já existir, a função falhará.
Se a cadeia de caracteres não incluir um caminho, o arquivo será criado no diretório atual do processo de chamada para uma chave local ou no diretório %systemroot%\system32 para uma chave remota. O novo arquivo tem o atributo archive.
[in, optional] lpSecurityAttributes
Um ponteiro para uma estrutura SECURITY_ATTRIBUTES que especifica um descritor de segurança para o novo arquivo. Se lpSecurityAttributes for NULL, o arquivo receberá um descritor de segurança padrão. As ACLs em um descritor de segurança padrão para um arquivo são herdadas de seu diretório pai.
Valor retornado
Se a função obtiver êxito, o valor retornado será ERROR_SUCCESS.
Se a função falhar, o valor de retorno será o código de erro diferente de zero definido em Winerror.h. Você pode usar a função FormatMessage com o sinalizador FORMAT_MESSAGE_FROM_SYSTEM para obter uma descrição genérica do erro.
Se o arquivo já existir, a função falhará com o erro ERROR_ALREADY_EXISTS.
Comentários
Se hKey representar uma chave em um computador remoto, o caminho descrito por lpFile será relativo ao computador remoto.
A função RegSaveKey salva apenas chaves nãovolatile. Ele não salva chaves voláteis. Uma chave é torna-se volátil ou não volátil em sua criação; consulte RegCreateKeyEx.
Você pode usar o arquivo criado por RegSaveKey em chamadas subsequentes para as funções RegLoadKey, RegReplaceKey ou RegRestoreKey . Se RegSaveKey falhar parcialmente durante a operação, o arquivo estará corrompido e as chamadas subsequentes para RegLoadKey, RegReplaceKey ou RegRestoreKey para o arquivo falharão.
Não é recomendável usar RegSaveKey junto com RegRestoreKey para copiar subárvores no registro. Esse método não dispara notificações e pode invalidar identificadores usados por outros aplicativos. Em vez disso, use a função SHCopyKey ou a função RegCopyTree .
O processo de chamada deve ter o privilégio SE_BACKUP_NAME habilitado. Para obter mais informações, confira Executar com privilégios especiais.
Observação
O cabeçalho winreg.h define RegSaveKey como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winreg.h (inclua Windows.h) |
Biblioteca | Advapi32.lib |
DLL | Advapi32.dll |