RegLoadAppKeyA-Funktion (winreg.h)
Lädt die angegebene Registrierungsstruktur als Anwendungsstruktur.
Syntax
LSTATUS RegLoadAppKeyA(
[in] LPCSTR lpFile,
[out] PHKEY phkResult,
[in] REGSAM samDesired,
[in] DWORD dwOptions,
DWORD Reserved
);
Parameter
[in] lpFile
Der Name der Hive-Datei. Diese Struktur muss mit der RegSaveKey - oder RegSaveKeyEx-Funktion erstellt worden sein. Wenn die Datei nicht vorhanden ist, wird eine leere Hive-Datei mit dem angegebenen Namen erstellt.
[out] phkResult
Zeiger auf das Handle für den Stammschlüssel der geladenen Struktur.
Die einzige Möglichkeit, auf Schlüssel in der Struktur zuzugreifen, ist über dieses Handle. Die Registrierung verhindert, dass eine Anwendung mithilfe eines absoluten Pfads zum Schlüssel auf Schlüssel in dieser Struktur zugreift. Daher ist es nicht möglich, über den Namespace der Registrierung zu dieser Struktur zu navigieren.
[in] samDesired
Eine Maske, die die für den zurückgegebenen Stammschlüssel angeforderten Zugriffsrechte angibt. Weitere Informationen finden Sie unter Sicherheit und Zugriffsrechte für Registrierungsschlüssel.
[in] dwOptions
Wenn dieser Parameter REG_PROCESS_APPKEY ist, kann die Struktur nicht erneut geladen werden, während sie vom Aufrufer geladen wird. Dadurch wird der Zugriff auf diese Registrierungsstruktur durch einen anderen Aufrufer verhindert.
Reserved
Dieser Parameter ist reserviert.
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.
Hinweise
Im Gegensatz zu RegLoadKey lädt RegLoadAppKey die Struktur nicht unter HKEY_LOCAL_MACHINE oder HKEY_USERS. Stattdessen wird die Struktur unter einem speziellen Stamm geladen, der nicht aufgezählt werden kann. Daher gibt es keine Möglichkeit, Hives aufzulisten, die derzeit von RegLoadAppKey geladen werden. Alle Vorgänge für hives, die von RegLoadAppKey geladen werden, müssen relativ zum in phkResult zurückgegebenen Handle ausgeführt werden.
Wenn zwei Prozesse Vorgänge in derselben Struktur ausführen müssen, muss jeder Prozess RegLoadAppKey aufrufen, um ein Handle abzurufen. Während des RegLoadAppKey-Vorgangs überprüft die Registrierung, ob die Datei bereits geladen wurde. Wenn sie geladen wurde, gibt die Registrierung ein Handle an die zuvor geladene Struktur zurück, anstatt die Struktur erneut zu laden.
Alle Schlüssel innerhalb der Struktur müssen denselben Sicherheitsdeskriptor aufweisen, andernfalls schlägt die Funktion fehl. Dieser Sicherheitsdeskriptor muss dem Aufrufer den vom samDesired-Parameter angegebenen Zugriff gewähren, andernfalls schlägt die Funktion fehl. Sie können die RegSetKeySecurity-Funktion für keinen Schlüssel innerhalb der Struktur verwenden.
In Windows 8 und höher kann jeder Prozess RegLoadAppKey aufrufen, um mehrere Hives zu laden. In Windows 7 und früher kann jeder Prozess jeweils nur eine Struktur mit RegLoadAppKey laden.
Jede mit RegLoadAppKey geladene Struktur wird automatisch entladen, wenn alle Handles für die Schlüssel in der Struktur mithilfe von RegCloseKey geschlossen werden.
Um eine Anwendung zu kompilieren, die diese Funktion verwendet, definieren Sie _WIN32_WINNT als 0x0600 oder höher. Weitere Informationen finden Sie unter Verwenden der Windows-Header.
Hinweis
Der winreg.h-Header definiert RegLoadAppKey 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 Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winreg.h (Windows.h einschließen) |
Bibliothek | Advapi32.lib |
DLL | Advapi32.dll |