RegGetValueA-Funktion (winreg.h)
Ruft den Typ und die Daten für den angegebenen Registrierungswert ab.
Syntax
LSTATUS RegGetValueA(
[in] HKEY hkey,
[in, optional] LPCSTR lpSubKey,
[in, optional] LPCSTR lpValue,
[in, optional] DWORD dwFlags,
[out, optional] LPDWORD pdwType,
[out, optional] PVOID pvData,
[in, out, optional] LPDWORD pcbData
);
Parameter
[in] hkey
Ein Handle zu einem geöffneten Registrierungsschlüssel. Der Schlüssel muss mit dem zugriffsrecht KEY_QUERY_VALUE geöffnet worden sein. Weitere Informationen finden Sie unter Registry Key Security and Access Rights.
Dieses Handle wird von der RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyExoder RegOpenKeyTransacted Funktion zurückgegeben. Es kann auch einer der folgenden vordefinierten Schlüsselsein:
- HKEY_CLASSES_ROOT
- HKEY_CURRENT_CONFIG
- HKEY_CURRENT_USER
- HKEY_LOCAL_MACHINE
- HKEY_PERFORMANCE_DATA
- HKEY_PERFORMANCE_NLSTEXT
- HKEY_PERFORMANCE_TEXT
- HKEY_USERS
[in, optional] lpSubKey
Der Pfad eines Registrierungsschlüssels relativ zum vom hkey Parameter angegebenen Schlüssel. Der Registrierungswert wird aus diesem Unterschlüssel abgerufen.
Bei dem Pfad wird die Groß-/Kleinschreibung nicht beachtet.
Wenn dieser Parameter NULL- oder eine leere Zeichenfolge "" ist, wird der Wert aus dem durch hkey selbst angegebenen Schlüssel gelesen.
[in, optional] lpValue
Der Name des Registrierungswerts.
Wenn dieser Parameter NULL- oder eine leere Zeichenfolge "" ist, ruft die Funktion ggf. den Typ und die Daten für den unbenannten oder Standardwert des Schlüssels ab. Schlüssel verfügen nicht automatisch über einen unbenannten oder Standardwert, und unbenannte Werte können beliebiger Art sein.
Weitere Informationen finden Sie unter Registrierungselementgrößenbeschränkungen.
[in, optional] dwFlags
Die Flags, mit denen der Datentyp des abzufragten Werts eingeschränkt wird. Wenn der Datentyp des Werts diese Kriterien nicht erfüllt, schlägt die Funktion fehl. Dieser Parameter kann einen oder mehrere der folgenden Werte sein.
Dieser Parameter kann auch einen oder mehrere der folgenden Werte enthalten.
Wert | Bedeutung |
---|---|
|
Erweitern Sie die Umgebungszeichenfolgen nicht automatisch, wenn der Wert vom Typ REG_EXPAND_SZ ist. |
|
Wenn pvData- nicht NULL-ist, legen Sie den Inhalt des Puffers bei Einem Fehler auf Nullen fest. |
|
Wenn lpSubKey- nicht NULL-ist, öffnen Sie den Unterschlüssel, der lpSubKey mit den KEY_WOW64_64KEY Zugriffsrechten angibt.
Informationen zu diesen Zugriffsrechten finden Sie unter Registry Key Security and Access Rights.
Sie können RRF_SUBKEY_WOW6464KEY nicht in Kombination mit RRF_SUBKEY_WOW6432KEYangeben. |
|
Wenn lpSubKey nicht NULL-ist, öffnen Sie den Unterschlüssel, der lpSubKey mit den KEY_WOW64_32KEY Zugriffsrechten angibt.
Informationen zu diesen Zugriffsrechten finden Sie unter Registry Key Security and Access Rights.
Sie können RRF_SUBKEY_WOW6432KEY nicht in Kombination mit RRF_SUBKEY_WOW6464KEYangeben. |
[out, optional] pdwType
Ein Zeiger auf eine Variable, die einen Code empfängt, der den Datentyp angibt, der im angegebenen Wert gespeichert ist. Eine Liste der möglichen Typcodes finden Sie unter Registrierungswerttypen. Dieser Parameter kann NULL- werden, wenn der Typ nicht erforderlich ist.
[out, optional] pvData
Ein Zeiger auf einen Puffer, der die Daten des Werts empfängt. Dieser Parameter kann NULL- werden, wenn die Daten nicht erforderlich sind.
Wenn es sich bei den Daten um eine Zeichenfolge handelt, sucht die Funktion nach einem beendenden NULL- Zeichen. Wenn eine nicht gefunden wird, wird die Zeichenfolge mit einem NULL- Terminator gespeichert, wenn der Puffer groß genug ist, um das zusätzliche Zeichen aufzunehmen. Andernfalls schlägt die Funktion fehl und gibt ERROR_MORE_DATA zurück.
[in, out, optional] pcbData
Ein Zeiger auf eine Variable, der die Größe des Puffers angibt, auf den der pvData--Parameter in Byte verweist. Wenn die Funktion zurückgegeben wird, enthält diese Variable die Größe der Daten, die in pvData-kopiert wurden.
Der pcbData Parameter kann nur NULL- sein, wenn pvData-NULL-ist.
Wenn die Daten über die REG_SZ, REG_MULTI_SZ oder REG_EXPAND_SZ Typ verfügen, enthält diese Größe alle endenden NULL- Zeichen oder Zeichen. Weitere Informationen finden Sie in den Hinweisen.
Wenn der durch pvData Parameter angegebene Puffer nicht groß genug ist, um die Daten aufzunehmen, gibt die Funktion ERROR_MORE_DATA zurück und speichert die erforderliche Puffergröße in der Variablen, auf die durch pcbDataverwiesen wird. In diesem Fall sind die Inhalte des pvData- Puffers Nullen, wenn dwFlags RRF_ZEROONFAILURE angibt und andernfalls nicht definiert ist.
Wenn pvData-NULL-ist und pcbData- nichtNULL-ist, gibt die Funktion ERROR_SUCCESS zurück und speichert die Größe der Daten in Bytes in der Variablen, auf die durch pcbDataverwiesen wird. Auf diese Weise kann eine Anwendung die beste Methode zum Zuordnen eines Puffers für die Daten des Werts ermitteln.
Wenn hKey-HKEY_PERFORMANCE_DATA angibt und der pvData- Puffer nicht groß genug ist, um alle zurückgegebenen Daten zu enthalten, gibt die Funktion ERROR_MORE_DATA zurück, und der durch den pcbData Parameter zurückgegebene Wert ist nicht definiert. Dies liegt daran, dass sich die Größe der Leistungsdaten von einem Aufruf zum nächsten ändern kann. In diesem Fall müssen Sie die Puffergröße erhöhen und RegGetValue erneut die aktualisierte Puffergröße im pcbData Parameter übergeben. Wiederholen Sie diesen Vorgang, bis die Funktion erfolgreich ausgeführt wird. Sie müssen eine separate Variable beibehalten, um die Puffergröße nachzuverfolgen, da der von pcbData- zurückgegebene Wert unvorhersehbar ist.
Rückgabewert
Wenn die Funktion erfolgreich ist, wird der Rückgabewert ERROR_SUCCESS.
Wenn die Funktion fehlschlägt, ist der Rückgabewert ein Systemfehlercode.
Wenn der pvData Puffer zu klein ist, um den Wert zu erhalten, gibt die Funktion ERROR_MORE_DATA zurück.
Wenn der LpValue-Registrierungswert nicht vorhanden ist, gibt die Funktion ERROR_FILE_NOT_FOUND zurück.
Wenn dwFlags- eine Kombination aus RRF_SUBKEY_WOW6464KEY und RRF_SUBKEY_WOW6432KEYangibt, gibt die Funktion ERROR_INVALID_PARAMETER zurück.
Bemerkungen
Eine Anwendung ruft in der Regel RegEnumValue auf, um die Wertnamen zu bestimmen, und RegGetValue, um die Daten für die Namen abzurufen.
Wenn die Daten über die REG_SZ, REG_MULTI_SZ oder REG_EXPAND_SZ Typ verfügen und die ANSI-Version dieser Funktion verwendet wird (entweder durch explizites Aufrufen RegGetValueA oder durch Nichtdefinition von UNICODE vor dem Einschließen der Windows.h-Datei), konvertiert diese Funktion die gespeicherte Unicode-Zeichenfolge in eine ANSI-Zeichenfolge, bevor sie in den Puffer kopiert wird, auf den pvData-verweist.
Beim Aufrufen dieser Funktion mit hkey auf das handle HKEY_PERFORMANCE_DATA und eine Wertzeichenfolge eines angegebenen Objekts festgelegt ist, weist die zurückgegebene Datenstruktur manchmal nicht angeforderte Objekte auf. Seien Sie nicht überrascht; Dies ist ein normales Verhalten. Sie sollten immer davon ausgehen, dass die zurückgegebene Datenstruktur nach dem angeforderten Objekt sucht.
Beachten Sie, dass Vorgänge, die auf bestimmte Registrierungsschlüssel zugreifen, umgeleitet werden. Weitere Informationen finden Sie unter Registry Virtualization und 32-Bit- und 64-Bit-Anwendungsdaten in der Registrierung.
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 RegGetValue 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, Windows XP Professional x64 Edition |
mindestens unterstützte Server- | Windows Server 2008, Windows Server 2003 mit SP1 |
Zielplattform- | Fenster |
Header- | winreg.h (enthalten Windows.h) |
Library | Advapi32.lib |
DLL- | Advapi32.dll |