Freigeben über


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
STATUS_INVALID_PARAMETER
Gibt an, dass einer der an die -Methode übergebenen Parameter ungültig ist.
STATUS_OBJECT_NAME_NOT_FOUND
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

Weitere Informationen

IRegistryKey

KEY_VALUE_BASIC_INFORMATION

KEY_VALUE_FULL_INFORMATION

KEY_VALUE_PARTIAL_INFORMATION

UNICODE_STRING

ZwQueryValueKey