Condividi tramite


Funzione RegSaveKeyExA (winreg.h)

Salva la chiave specificata e tutte le relative sottochiavi e valori in un file del Registro di sistema, nel formato specificato.

Le applicazioni che esegue il backup o il ripristino dello stato del sistema, inclusi i file di sistema e gli hive del Registro di sistema, devono usare il servizio copia shadow del volume anziché le funzioni del Registro di sistema.

Sintassi

LSTATUS RegSaveKeyExA(
  [in]           HKEY                        hKey,
  [in]           LPCSTR                      lpFile,
  [in, optional] const LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  [in]           DWORD                       Flags
);

Parametri

[in] hKey

Handle per una chiave del Registro di sistema aperta.

Questa funzione non supporta il HKEY_CLASSES_ROOT chiave predefinita.

[in] lpFile

Nome del file in cui salvare la chiave e le sottochiavi specificate. Se il file esiste già, la funzione ha esito negativo.

Il nuovo file ha l'attributo archive.

Se la stringa non include un percorso, il file viene creato nella directory corrente del processo chiamante per una chiave locale o nella directory %systemroot%\system32 per una chiave remota.

[in, optional] lpSecurityAttributes

Puntatore a una struttura SECURITY_ATTRIBUTES che specifica un descrittore di sicurezza per il nuovo file. Se lpSecurityAttributes è NULL, il file ottiene un descrittore di sicurezza predefinito. Gli ACL in un descrittore di sicurezza predefinito per un file vengono ereditati dalla directory padre.

[in] Flags

Formato della chiave salvata o dell'hive. Questo parametro può essere uno dei valori seguenti.

Valore Significato
REG_STANDARD_FORMAT
1
La chiave o l'hive viene salvata in formato standard. Il formato standard è l'unico formato supportato da Windows 2000.
REG_LATEST_FORMAT
2
La chiave o l'hive viene salvata nel formato più recente. Il formato più recente è supportato a partire da Windows XP. Dopo il salvataggio della chiave o dell'hive in questo formato, non può essere caricato in un sistema precedente.
REG_NO_COMPRESSION
4
L'hive viene salvato senza compressione, per operazioni di salvataggio più veloci. Il parametro hKey deve specificare la radice di un hive in HKEY_LOCAL_MACHINE o HKEY_USERS. Ad esempio, HKLM\SOFTWARE è la radice di un hive.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è ERROR_SUCCESS.

Se la funzione ha esito negativo, il valore restituito è un codice di errore diverso da zero definito in Winerror.h. È possibile usare la funzione FormatMessage con il flag FORMAT_MESSAGE_FROM_SYSTEM per ottenere una descrizione generica dell'errore.

Se per il parametro Flags viene specificato più di uno dei possibili valori elencati in precedenza, ad esempio se due o più valori sono OR, oppure se REG_NO_COMPRESSION viene specificato e hKey specifica una chiave che non è la radice di un hive, questa funzione restituisce ERROR_INVALID_PARAMETER.

Osservazioni

A differenza di RegSaveKey, questa funzione non supporta la chiave predefinita HKEY_CLASSES_ROOT.

Se hKey rappresenta una chiave in un computer remoto, il percorso descritto da lpFile è relativo al computer remoto.

La funzione regSaveKeyEx salva solo le chiavi non volatile. Non salva chiavi volatili. Una chiave viene resa volatile o non volatile al momento della sua creazione; vedere RegCreateKeyEx.

È possibile usare il file creato da RegSaveKeyEx nelle chiamate successive alla funzione RegLoadKey, RegReplaceKeyo RegRestoreKey. Se RegSaveKeyEx ha esito negativo durante l'operazione, il file verrà danneggiato e le chiamate successive a RegLoadKey, RegReplaceKeyo RegRestoreKey per il file avrà esito negativo.

Non è consigliabile usare RegSaveKeyEx insieme a RegRestoreKey per copiare sottoalberi nel Registro di sistema. Questo metodo non attiva le notifiche e può invalidare gli handle usati da altre applicazioni. Usare invece la funzione SHCopyKey o la funzione RegCopyTree.

Il processo chiamante deve avere il privilegio SE_BACKUP_NAME abilitato. Per altre informazioni, vedere esecuzione con privilegi speciali.

Nota

L'intestazione winreg.h definisce RegSaveKeyEx come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows XP [solo app desktop]
server minimo supportato Windows Server 2003 [solo app desktop]
piattaforma di destinazione Finestre
intestazione winreg.h (include Windows.h)
libreria Advapi32.lib
dll Advapi32.dll

Vedere anche

RegCreateKeyEx

RegDeleteKey

RegLoadKey

RegReplaceKey

RegRestoreKey

RegSaveKey

file del Registro di sistema

funzioni del Registro di sistema

SECURITY_ATTRIBUTES