Freigeben über


RegOpenKeyTransactedA-Funktion (winreg.h)

Öffnet den angegebenen Registrierungsschlüssel und ordnet ihn einer Transaktion zu. Beachten Sie, dass bei Schlüsselnamen die Groß-/Kleinschreibung nicht beachtet wird.

Syntax

LSTATUS RegOpenKeyTransactedA(
  [in]           HKEY   hKey,
  [in, optional] LPCSTR lpSubKey,
  [in]           DWORD  ulOptions,
  [in]           REGSAM samDesired,
  [out]          PHKEY  phkResult,
  [in]           HANDLE hTransaction,
                 PVOID  pExtendedParemeter
);

Parameter

[in] hKey

Ein Handle zu einem geöffneten Registrierungsschlüssel. Dieses Handle wird von der RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyExoder RegOpenKeyTransacted Funktion zurückgegeben. Es kann auch einer der folgenden vordefinierten Schlüsselsein:

HKEY_CLASSES_ROOTHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_USERS

[in, optional] lpSubKey

Der Name des Registrierungsunterschlüssels, der geöffnet werden soll.

Bei Schlüsselnamen wird die Groß-/Kleinschreibung nicht beachtet.

Wenn der parameter lpSubKeyNULL oder ein Zeiger auf eine leere Zeichenfolge ist und hKey ein vordefinierter Schlüssel ist, aktualisiert das System den vordefinierten Schlüssel, und phkResult erhält denselben hKey-, der an die Funktion übergeben wird. Andernfalls empfängt phkResult ein neues Handle für den geöffneten Schlüssel.

Weitere Informationen finden Sie unter Registrierungselementgrößenbeschränkungen.

[in] ulOptions

Dieser Parameter ist reserviert und muss null sein.

[in] samDesired

Eine Maske, die die gewünschten Zugriffsrechte für den Schlüssel angibt. Die Funktion schlägt fehl, wenn der Sicherheitsdeskriptor des Schlüssels den angeforderten Zugriff für den Aufrufvorgang nicht zulässt. Weitere Informationen finden Sie unter Registry Key Security and Access Rights.

[out] phkResult

Ein Zeiger auf eine Variable, die ein Handle für den geöffneten Schlüssel empfängt. Wenn der Schlüssel nicht einer der vordefinierten Registrierungsschlüssel ist, rufen Sie die RegCloseKey--Funktion auf, nachdem Sie die Verwendung des Handle abgeschlossen haben.

[in] hTransaction

Ein Handle zu einer aktiven Transaktion. Dieses Handle wird von der CreateTransaction--Funktion zurückgegeben.

pExtendedParemeter

Dieser Parameter ist reserviert und muss NULL-sein.

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

Wenn ein Schlüssel mithilfe dieser Funktion geöffnet wird, werden nachfolgende Vorgänge für den Schlüssel durchgeführt. Wenn ein vorgang ohne Transaktionen für den Schlüssel ausgeführt wird, bevor die Transaktion zugesichert wird, wird die Transaktion zurückgesetzt. Nachdem eine Transaktion zugesichert oder zurückgesetzt wurde, müssen Sie den Schlüssel mithilfe des RegCreateKeyTransacted oder RegOpenKeyTransacted--Funktion mit einem aktiven Transaktionshandle erneut öffnen, um zusätzliche Transaktionen durchzuführen. Weitere Informationen zu Transaktionen finden Sie unter Kernel Transaction Manager.

Beachten Sie, dass nachfolgende Vorgänge für Unterschlüssel dieses Schlüssels nicht automatisch durchgeführt werden. Daher führt die RegDeleteKeyEx--Funktion keinen Transacted Delete-Vorgang aus. Verwenden Sie stattdessen die RegDeleteKeyTransacted--Funktion, um einen Transaktionslöschvorgang auszuführen.

Im Gegensatz zur RegCreateKeyTransacted--Funktion erstellt die RegOpenKeyTransacted- funktion nicht den angegebenen Schlüssel, wenn der Schlüssel nicht in der Registrierung vorhanden ist.

Wenn Ihr Dienst oder Ihre Anwendung unterschiedliche Benutzer imitiert, verwenden Sie diese Funktion nicht mit HKEY_CURRENT_USER. Rufen Sie stattdessen die RegOpenCurrentUser-Funktion auf.

Wenn der in phkResult zurückgegebene Schlüssel ein vordefinierter Registrierungsschlüssel ist, ist er nicht in der bereitgestellten Transaktion enthalten.

Ein einzelner Registrierungsschlüssel kann nur 65.534 Mal geöffnet werden. Wenn Sie versuchen, den 65.535 Geöffneten Vorgang auszuführen, schlägt diese Funktion mit ERROR_NO_SYSTEM_RESOURCES fehl.

Anmerkung

Der winreg.h-Header definiert RegOpenKeyTransacted als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante 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

Siehe auch

RegCloseKey-

RegCreateKeyTransacted-

RegDeleteKeyTransacted

Registrierungsfunktionen

Registrierungsübersicht