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 Strukturdatei. Diese Struktur muss mit der RegSaveKey-- oder RegSaveKeyEx--Funktion erstellt worden sein. Wenn die Datei nicht vorhanden ist, wird eine leere Strukturdatei mit dem angegebenen Namen erstellt.
[out] phkResult
Zeigen Sie auf den Handle für den Stammschlüssel der geladenen Struktur.
Die einzige Möglichkeit für den Zugriff auf Schlüssel in der Struktur ist dieses Handle. Die Registrierung verhindert, dass eine Anwendung auf Schlüssel in dieser Struktur zugreift, indem sie einen absoluten Pfad zum Schlüssel verwendet. 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 Registry Key Security and Access Rights.
[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 nichtzero-Fehlercode, der in Winerror.h definiert ist. Sie können die FormatMessage--Funktion mit dem FORMAT_MESSAGE_FROM_SYSTEM Flag verwenden, um eine allgemeine Beschreibung des Fehlers zu erhalten.
Bemerkungen
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, strukturieren, die derzeit von RegLoadAppKeygeladen werden. Alle Von RegLoadAppKey geladenen Strukturvorgänge müssen relativ zum in phkResult zurückgegebenen Handle ausgeführt werden.
Wenn zwei Prozesse zum Ausführen von Vorgängen in derselben Struktur erforderlich sind, 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, oder die Funktion schlägt fehl. Sie können die RegSetKeySecurity--Funktion nicht für einen Schlüssel innerhalb der Struktur verwenden.
In Windows 8 und höher kann jeder Prozess RegLoadAppKey- aufrufen, um mehrere Strukturen zu laden. In Windows 7 und früheren Versionen kann jeder Prozess nur eine Struktur mit RegLoadAppKey- gleichzeitig laden.
Jede struktur, die mit RegLoadAppKey geladen wird, wird automatisch entladen, wenn alle Handles für die Schlüssel innerhalb der Struktur mit RegCloseKeygeschlossen 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.
Anmerkung
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 |
---|---|
mindestens unterstützte Client- | Windows Vista [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows Server 2008 [Nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | winreg.h (enthalten Windows.h) |
Library | Advapi32.lib |
DLL- | Advapi32.dll |