IRegistryKey::QueryValueKey-Methode (portcls.h)
Die QueryValueKey
-Methode ruft Informationen zu den Werteinträgen eines Registrierungsschlüssels ab, einschließlich deren Namen, Typen, Datengrößen und Werte.
Syntax
NTSTATUS QueryValueKey(
[in] PUNICODE_STRING ValueName,
[in] KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
[out] PVOID KeyValueInformation,
[in] ULONG Length,
[out] PULONG ResultLength
);
Parameter
[in] ValueName
Zeiger auf den vom Hersteller angegebenen Namen des Werteintrags. Die Namenszeichenfolge wird durch eine Struktur vom Typ UNICODE_STRING angegeben.
[in] KeyValueInformationClass
Gibt den Typ der Informationen an, die im Puffer zurückgegeben werden sollen. Legen Sie diesen Parameter auf einen der folgenden KEY_VALUE_INFORMATION_CLASS-Enumerationswerte fest:
- KeyValueBasicInformation
- KeyValueFullInformation
- KeyValuePartialInformation
[out] KeyValueInformation
Zeiger auf einen vom Aufrufer zugeordneten Puffer, in den die Methode die angeforderten Daten schreibt. Der Puffer enthält je nach Wert von KeyValueInformationClass eine Struktur vom Typ KEY_VALUE_BASIC_INFORMATION, KEY_VALUE_FULL_INFORMATION oder KEY_VALUE_PARTIAL_INFORMATION. Auf die Struktur folgen zusätzliche Daten, deren Größe vom Datentyp des Schlüsselwerts abhängt.
[in] Length
Größe des KeyValueInformation-Puffers in Byte, den der Aufrufer gemäß der angegebenen KeyValueInformationClass festlegen muss. Um alle angeforderten Daten zu empfangen, muss der Puffer mindestens so groß sein wie die angeforderten Daten.
[out] ResultLength
Ausgabezeiger für die Länge der resultierenden Daten. Dieser Parameter verweist auf eine vom Aufrufer zugeordnete ULONG-Variable, in die die Methode eine Anzahl schreibt, die die Anzahl der Bytes angibt, die tatsächlich in den KeyValueInformation-Puffer geschrieben wurden. Wenn die angegebene Pufferlänge jedoch zu klein ist, um die Informationen zu enthalten, gibt die Methode stattdessen die erforderliche Puffergröße aus und gibt STATUS_BUFFER_OVERFLOW oder STATUS_BUFFER_TOO_SMALL zurück. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".
Rückgabewert
QueryValueKey
gibt STATUS_SUCCESS zurück, wenn der Aufruf die angeforderten Informationen erfolgreich in den KeyValueInformation-Puffer kopiert hat. Wenn die angegebene Puffergröße zu klein ist, um alle angeforderten Informationen zu empfangen, gibt die Methode STATUS_BUFFER_OVERFLOW zurück. Wenn die angegebene Puffergröße zu klein ist, um die angeforderten Informationen zu empfangen, gibt die Methode STATUS_BUFFER_TOO_SMALL zurück. Andernfalls gibt die Methode einen geeigneten Fehler status Code zurück. In der folgenden Tabelle sind einige der möglichen Fehlercodes aufgeführt.
Rückgabecode | Beschreibung |
---|---|
|
Gibt an, dass einer der an die -Methode übergebenen Parameter ungültig ist. |
|
Gibt an, dass der Werteintrag mit dem angegebenen Namen nicht gefunden wurde. |
Hinweise
Wenn der KeyValueInformation-Puffer zu klein ist, um die angeforderten Informationen zu speichern, schreibt die Methode die erforderliche Größe in *ResultLength und gibt einen status Code von STATUS_BUFFER_OVERFLOW oder STATUS_BUFFER_TOO_SMALL zurück. Die -Methode gibt STATUS_BUFFER_OVERFLOW zurück, wenn es gelungen ist, nur einen Teil der angeforderten Informationen in den Puffer zu schreiben. Die -Methode gibt STATUS_BUFFER_TOO_SMALL zurück, wenn sie keine Informationen in den Puffer schreiben konnte. Der in *ResultLength geschriebene Wert gibt die minimale Puffergröße an, die zum Speichern aller angeforderten Informationen erforderlich ist.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | portcls.h (portcls.h einschließen) |
IRQL | PASSIVE_LEVEL |