Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die ZwQueryKey-Routine stellt Informationen über die Klasse eines Registrierungsschlüssels sowie die Anzahl und Größe seiner Unterschlüssel bereit.
Syntax
NTSYSAPI NTSTATUS ZwQueryKey(
[in] HANDLE KeyHandle,
[in] KEY_INFORMATION_CLASS KeyInformationClass,
[out, optional] PVOID KeyInformation,
[in] ULONG Length,
[out] PULONG ResultLength
);
Die Parameter
[in] KeyHandle
Behandeln Sie den Registrierungsschlüssel, um Informationen zu erhalten. Dieses Handle wird durch einen erfolgreichen Aufruf von ZwCreateKey oder ZwOpenKey erstellt.
[in] KeyInformationClass
Gibt einen KEY_INFORMATION_CLASS Wert an, der den Typ der im KeyInformation-Puffer zurückgegebenen Informationen bestimmt.
[out, optional] KeyInformation
Zeigen Sie auf einen vom Aufrufer zugewiesenen Puffer, der die angeforderten Informationen empfängt.
[in] Length
Gibt die Größe des KeyInformation-Puffers in Bytes an.
[out] ResultLength
Zeigen Sie auf eine Variable, die die Größe der angeforderten Schlüsselinformationen in Byte empfängt. Wenn ZwQueryKey STATUS_SUCCESS zurückgibt, enthält die Variable die zurückgegebene Datenmenge. Wenn ZwQueryKey STATUS_BUFFER_OVERFLOW oder STATUS_BUFFER_TOO_SMALL zurückgibt, können Sie den Wert der Variablen verwenden, um die erforderliche Puffergröße zu bestimmen.
Rückgabewert
ZwQueryKey gibt STATUS_SUCCESS bei Erfolg oder den entsprechenden Fehlercode für Fehler zurück. Mögliche Fehlercodewerte sind:
| Rückgabecode | Description |
|---|---|
| STATUS_BUFFER_OVERFLOW | Der bereitgestellte Puffer ist zu klein, und nur Teildaten wurden in den Puffer geschrieben. * ResultLength wird auf die Mindestgröße festgelegt, die zum Halten der angeforderten Informationen erforderlich ist. |
| STATUS_BUFFER_TOO_SMALL | Der bereitgestellte Puffer ist zu klein, und es wurden keine Daten in den Puffer geschrieben. * ResultLength wird auf die Mindestgröße festgelegt, die zum Halten der angeforderten Informationen erforderlich ist. |
| STATUS_INVALID_PARAMETER | Der KeyInformationClass-Parameter ist kein gültiger KEY_INFORMATION_CLASS Wert. |
Bemerkungen
Das an ZwQueryKey übergebene KeyHandle muss mit KEY_QUERY_VALUE Zugriff geöffnet worden sein. Dazu übergeben Sie KEY_QUERY_VALUE, KEY_READ oder KEY_ALL_ACCESS als Parameter DesiredAccess an ZwCreateKey oder ZwOpenKey.
Wenn "KeyInformationClass" "KeyNameInformation " oder "KeyHandleTagsInformation" lautet, gilt die KEY_QUERY_VALUE Anforderung nicht.
ZwQueryKey kann verwendet werden, um Informationen abzurufen, mit denen Sie Puffer für Registrierungsdaten zuordnen können, z. B. die maximale Größe der Werteinträge oder Unterschlüsselnamen eines Schlüssels oder die Anzahl der Unterschlüssel. Sie können z. B. ZwQueryKey aufrufen, die zurückgegebenen Informationen verwenden, um einen Puffer für einen Unterschlüssel zuzuweisen, ZwEnumerateKey aufzurufen, um den Namen des Unterschlüssels abzurufen und diesen Namen an eine RtlXxxRegistry-Routine zu übergeben.
Weitere Informationen zum Arbeiten mit Registrierungsschlüsseln finden Sie unter Verwenden der Registrierung in einem Treiber.
Wenn der Aufruf dieser Funktion im Benutzermodus erfolgt, sollten Sie den Namen "NtQueryKey" anstelle von "ZwQueryKey" verwenden.
Bei Aufrufen von Kernelmodustreibern können sich die NtXxx und ZwXxx- Versionen einer Windows Native System Services-Routine anders verhalten, wie sie Eingabeparameter behandeln und interpretieren. Weitere Informationen zur Beziehung zwischen den NtXxx und ZwXxx- Versionen einer Routine finden Sie unter Using Nt and Zw Versions of the Native System Services Routines.
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform | Universal |
| Header | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
| Library | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | PASSIVE_LEVEL |
| DDI-Complianceregeln | HwStorPortProhibitedDDIs(storport), IrqlZwPassive(wdm), PowerIrpDDis(wdm), ZwRegistryCreate(storport), ZwRegistryCreate(storport), ZwRegistryCreate(wdm), ZwRegistryOpen(storport), ZwRegistryOpen(storport), ZwRegistryOpen(wdm) |
Siehe auch
KEY_VIRTUALIZATION_INFORMATION
Verwenden von Nt- und Zw-Versionen der systemeigenen Systemdienste-Routinen