Funzione RegSaveKeyExA (winreg.h)

Salva la chiave specificata e tutti i relativi 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 hives 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 la chiave predefinita HKEY_CLASSES_ROOT .

[in] lpFile

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

Il nuovo file ha l'attributo di archiviazione.

Se la stringa non include un percorso, il file viene creato nella directory corrente del processo di chiamata 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ò avere 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 che la chiave o l'hive viene salvata in questo formato, non può essere caricata 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 in una chiamata a questa funzione, ad esempio se due o più valori sono OR'ed oppure se REG_NO_COMPRESSION è specificato e hKey specifica una chiave che non è la radice di un hive, questa funzione restituisce ERROR_INVALID_PARAMETER.

Commenti

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 chiavi nonvolatile. Non salva chiavi volatili. Una chiave viene resa volatile o nonvolatile alla sua creazione; vedere RegCreateKeyEx.

È possibile usare il file creato da RegSaveKeyEx nelle chiamate successive alla funzione RegLoadKey, RegReplaceKey o RegRestoreKey. Se RegSaveKeyEx ha esito negativo attraverso l'operazione, il file verrà danneggiato e le chiamate successive a RegLoadKey, RegReplaceKey o RegRestoreKey per il file avranno 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 di chiamata 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 preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winreg.h (include Windows.h)
Libreria Advapi32.lib
DLL Advapi32.dll

Vedi anche

RegCreateKeyEx

RegDeleteKey

RegLoadKey

RegReplaceKey

RegRestoreKey

Regsavekey

File del Registro di sistema

Funzioni del Registro di sistema

SECURITY_ATTRIBUTES