Freigeben über


IRegistryKey::EnumerateValueKey-Methode (portcls.h)

Die EnumerateValueKey -Methode gibt Informationen zu einem Registrierungseintrag zurück, der einen Wertschlüssel enthält.

Syntax

NTSTATUS EnumerateValueKey(
  [in]  ULONG                       Index,
  [in]  KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
  [out] PVOID                       KeyValueInformation,
  [in]  ULONG                       Length,
  [out] PULONG                      ResultLength
);

Parameter

[in] Index

Gibt den Unterschlüsselindex an. Dieser Parameter identifiziert den Unterschlüssel, dessen Wert angefordert wird. Wenn der Schlüssel n-Unterschlüssel enthält, reichen gültige Indizes von 0 bis n-1. Wenn der Index diesen Bereich überschreitet, gibt die Methode STATUS_NO_MORE_ENTRIES zurück.

[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

Ausgabezeiger für den Schlüsselwert. Dieser Parameter verweist auf einen vom Aufrufer zugewiesenen Puffer, in den die Methode die angeforderten Daten schreibt. Der Puffer enthält eine Struktur vom Typ KEY_VALUE_BASIC_INFORMATION, KEY_VALUE_FULL_INFORMATION oder KEY_VALUE_PARTIAL_INFORMATION, abhängig vom Wert von KeyValueInformationClass. Auf die Struktur folgen zusätzliche Daten, deren Größe vom Datentyp des Schlüsselwerts abhängt.

[in] Length

Größe in Bytes des KeyValueInformation-Puffers , den der Aufrufer gemäß der angegebenen KeyValueInformationClass festlegen muss. Damit der Aufruf erfolgreich ist, muss der Puffer mindestens so groß sein wie die Daten, die die Methode in den Puffer schreibt.

[out] ResultLength

Ausgabezeiger für die Länge der resultierenden Daten. Dieser Parameter verweist auf eine vom Aufrufer zugewiesene 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 zurück.

Rückgabewert

EnumerateValueKey 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 verfügbaren Informationen zu empfangen, gibt die Methode STATUS_BUFFER_OVERFLOW zurück. Andernfalls gibt die Methode einen entsprechenden Fehlercode zurück. In der folgenden Tabelle sind einige der möglichen Rückgabecodes status aufgeführt.

Rückgabecode Beschreibung
STATUS_BUFFER_TOO_SMALL
Gibt an, dass der angegebene Puffer zu klein ist, um Informationen zu empfangen.
STATUS_INVALID_PARAMETER
Gibt an, dass einer der an die -Methode übergebenen Parameter ungültig ist.
STATUS_NO_MORE_ENTRIES
Gibt an, dass keine weiteren Wertschlüssel verfügbar sind (der Index-Parameter ist größer oder gleich der Anzahl der Wertschlüssel).

Anforderungen

Anforderung Wert
Zielplattform Universell
Header portcls.h (include Portcls.h)
IRQL PASSIVE_LEVEL

Weitere Informationen

IRegistryKey

KEY_VALUE_BASIC_INFORMATION

KEY_VALUE_FULL_INFORMATION

KEY_VALUE_PARTIAL_INFORMATION

ZwEnumerateValueKey