RegSaveKeyExA-Funktion (winreg.h)

Speichert den angegebenen Schlüssel und alle seine Unterschlüssel und Werte in einer Registrierungsdatei im angegebenen Format.

Anwendungen, die den Systemzustand sichern oder wiederherstellen, einschließlich Systemdateien und Registrierungsstrukturen, sollten anstelle der Registrierungsfunktionen den Volumeschattenkopiedienst verwenden.

Syntax

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

Parameter

[in] hKey

Ein Handle für einen geöffneten Registrierungsschlüssel.

Diese Funktion unterstützt den HKEY_CLASSES_ROOT vordefinierten Schlüssel nicht.

[in] lpFile

Der Name der Datei, in der der angegebene Schlüssel und unterschlüssel gespeichert werden sollen. Wenn die Datei bereits vorhanden ist, schlägt die Funktion fehl.

Die neue Datei verfügt über das Archiv-Attribut.

Wenn die Zeichenfolge keinen Pfad enthält, wird die Datei im aktuellen Verzeichnis des aufrufenden Prozesses für einen lokalen Schlüssel oder im Verzeichnis %systemroot%\system32 für einen Remoteschlüssel erstellt.

[in, optional] lpSecurityAttributes

Ein Zeiger auf eine SECURITY_ATTRIBUTES-Struktur , die einen Sicherheitsdeskriptor für die neue Datei angibt. Wenn lpSecurityAttributesNULL ist, ruft die Datei einen Standardsicherheitsdeskriptor ab. Die ACLs in einem Standardsicherheitsdeskriptor für eine Datei werden vom übergeordneten Verzeichnis geerbt.

[in] Flags

Das Format des gespeicherten Schlüssels oder der Struktur. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
REG_STANDARD_FORMAT
1
Der Schlüssel oder die Struktur wird im Standardformat gespeichert. Das Standardformat ist das einzige von Windows 2000 unterstützte Format.
REG_LATEST_FORMAT
2
Der Schlüssel oder die Struktur wird im neuesten Format gespeichert. Das neueste Format wird ab Windows XP unterstützt. Nachdem der Schlüssel oder die Struktur in diesem Format gespeichert wurde, kann er nicht auf ein früheres System geladen werden.
REG_NO_COMPRESSION
4
Die Struktur wird ohne Komprimierung gespeichert, um schnellere Speichervorgänge zu ermöglichen. Der hKey-Parameter muss den Stamm einer Struktur unter HKEY_LOCAL_MACHINE oder HKEY_USERS angeben. HKLM\SOFTWARE ist beispielsweise der Stamm einer Struktur.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird der Rückgabewert ERROR_SUCCESS.

Wenn die Funktion fehlschlägt, ist der Rückgabewert ein in Winerror.h definierter Fehlercode ungleich null. Sie können die FormatMessage-Funktion mit dem flag FORMAT_MESSAGE_FROM_SYSTEM verwenden, um eine generische Beschreibung des Fehlers abzurufen.

Wenn mehr als einer der oben aufgeführten möglichen Werte für den Flags-Parameter in einem Aufruf dieser Funktion angegeben wird, z. B. wenn zwei oder mehr Werte OR'ed sind, oder wenn REG_NO_COMPRESSION angegeben ist und hKey einen Schlüssel angibt, der nicht der Stamm einer Struktur ist, gibt diese Funktion ERROR_INVALID_PARAMETER zurück.

Hinweise

Im Gegensatz zu RegSaveKey unterstützt diese Funktion den HKEY_CLASSES_ROOT vordefinierten Schlüssel nicht.

Wenn hKey einen Schlüssel auf einem Remotecomputer darstellt, ist der von lpFile beschriebene Pfad relativ zum Remotecomputer.

Die RegSaveKeyEx-Funktion speichert nur nicht flüchtige Schlüssel. Es werden keine flüchtigen Schlüssel gespeichert. Ein Schlüssel wird bei seiner Erstellung als flüchtig oder unflüchtig gemacht; siehe RegCreateKeyEx.

Sie können die von RegSaveKeyEx erstellte Datei in nachfolgenden Aufrufen der RegLoadKey-, RegReplaceKey- oder RegRestoreKey-Funktion verwenden. Wenn RegSaveKeyEx den Vorgang teilweise nicht durchläuft, ist die Datei beschädigt, und nachfolgende Aufrufe von RegLoadKey, RegReplaceKey oder RegRestoreKey für die Datei schlagen fehl.

Die Verwendung von RegSaveKeyEx zusammen mit RegRestoreKey zum Kopieren von Unterstrukturen in der Registrierung wird nicht empfohlen. Diese Methode löst keine Benachrichtigungen aus und kann von anderen Anwendungen verwendete Handles ungültig werden. Verwenden Sie stattdessen die SHCopyKey-Funktion oder die RegCopyTree-Funktion .

Für den aufrufenden Prozess muss die berechtigung SE_BACKUP_NAME aktiviert sein. Weitere Informationen finden Sie unter Ausführen mit speziellen Berechtigungen.

Hinweis

Der winreg.h-Header definiert RegSaveKeyEx als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winreg.h (Windows.h einschließen)
Bibliothek Advapi32.lib
DLL Advapi32.dll

Weitere Informationen

RegCreateKeyEx

RegDeleteKey

RegLoadKey

RegReplaceKey

RegRestoreKey

RegSaveKey

Registrierungsdateien

Registrierungsfunktionen

SECURITY_ATTRIBUTES