Freigeben über


IRegistryKey::QueryKey-Methode (portcls.h)

Die QueryKey-Methode ruft Informationen zu einem Registrierungsschlüssel ab, einschließlich Schlüsselname, Schlüsselklasse und anzahl der Unterschlüssel und deren Größen.

Syntax

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

Parameter

[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 einen vom Aufrufer zugewiesenen Puffer, in den die Methode die angeforderten Daten schreibt. Der Puffer enthält eine Struktur vom Typ KEY_BASIC_INFORMATION, KEY_FULL_INFORMATIONoder KEY_NODE_INFORMATION, abhängig vom Wert KeyInformationClass. Auf die Struktur folgt eine Zeichenfolge von Unicode-Zeichen, deren Größe vom Typ der angeforderten Informationen zum Schlüssel und der Länge des Schlüsselnamens oder der Klassenzeichenfolge abhängt.

[in] Length

Größe in Byte des KeyInformation- Puffers, den der Aufrufer gemäß dem angegebenen KeyInformationClass-festlegen muss. Um alle angeforderten Daten zu empfangen, muss der Puffer mindestens so groß sein wie die Größe der angeforderten Daten.

[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 KeyInformation Puffer geschrieben wurden. Wenn die angegebene Pufferlänge 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

QueryKey gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich war, die angeforderten Informationen in den KeyInformation- Puffer zu kopieren. 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 eine der angeforderten Informationen zu empfangen, gibt die Methode STATUS_BUFFER_TOO_SMALL zurück. Andernfalls gibt die Methode einen entsprechenden Fehlerstatuscode 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 Parameter, die an die Methode übergeben werden, ungültig ist.

Bemerkungen

Wenn der KeyInformation- Puffer zu klein ist, um die angeforderten Informationen zu speichern, schreibt die Methode die erforderliche Größe in *ResultLength und gibt einen Statuscode von STATUS_BUFFER_OVERFLOW oder STATUS_BUFFER_TOO_SMALL zurück. Die Methode gibt STATUS_BUFFER_OVERFLOW zurück, wenn sie nur einen Teil der angeforderten Informationen in den Puffer schreiben konnte. Die Methode gibt STATUS_BUFFER_TOO_SMALL zurück, wenn keine Informationen in den Puffer geschrieben werden konnten. Der Wert, der in *ResultLength- geschrieben wurde, gibt die mindeste Puffergröße an, die erforderlich ist, um alle angeforderten Informationen aufzunehmen.

Anforderungen

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

Siehe auch

IRegistryKey-

KEY_BASIC_INFORMATION

KEY_FULL_INFORMATION

KEY_NODE_INFORMATION

ZwQueryKey-