Freigeben über


IRegistryKey::EnumerateKey-Methode (portcls.h)

Die EnumerateKey -Methode gibt Informationen zu den Unterschlüsseln des geöffneten Schlüssels zurück.

Syntax

NTSTATUS EnumerateKey(
  [in]  ULONG                 Index,
  [in]  KEY_INFORMATION_CLASS KeyInformationClass,
  [out] PVOID                 KeyInformation,
  [in]  ULONG                 Length,
  [out] PULONG                ResultLength
);

Parameter

[in] Index

Gibt den Unterschlüsselindex an. Dieser Parameter identifiziert den Unterschlüssel, für den Schlüsselinformationen angefordert werden. 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] KeyInformationClass

Gibt den Typ der Informationen an, die im Puffer zurückgegeben werden sollen. Legen Sie diesen Parameter auf einen der folgenden KEY_INFORMATION_CLASS-Enumerationswerte fest:

  • KeyBasicInformation
  • KeyFullInformation
  • KeyNodeInformation

[out] KeyInformation

Zeiger auf den Schlüsselinformationspuffer. Dieser Parameter verweist auf einen vom Aufrufer zugeordneten Puffer, in den die Methode die angeforderten Daten schreibt. Der Puffer enthält je nach Wert von KeyInformationClass eine Struktur vom Typ KEY_BASIC_INFORMATION, KEY_FULL_INFORMATION oder KEY_NODE_INFORMATION. Auf die Struktur folgt eine Zeichenfolge von Unicode-Zeichen, deren Größe vom Typ der zum Schlüssel angeforderten Informationen abhängt.

[in] Length

Gibt die Größe des KeyInformation-Puffers in Byte an, den der Aufrufer gemäß der angegebenen KeyInformationClass 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 zugeordnete ULONG-Variable, in die die Methode eine Anzahl schreibt, die die Anzahl der Bytes angibt, die tatsächlich in den KeyInformation-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

EnumerateKey gibt STATUS_SUCCESS zurück, wenn der Aufruf die angeforderten Informationen im KeyInformation-Puffer erfolgreich abgerufen 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 geeigneten 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_NO_MORE_ENTRIES
Gibt an, dass keine weiteren Unterschlüssel verfügbar sind (der Unterschlüsselindex ist größer oder gleich der Anzahl der Unterschlüssel).

Anforderungen

Anforderung Wert
Zielplattform Universell
Header portcls.h (portcls.h einschließen)
IRQL PASSIVE_LEVEL

Weitere Informationen

IRegistryKey

KEY_BASIC_INFORMATION

KEY_FULL_INFORMATION

KEY_NODE_INFORMATION

ZwEnumerateKey