Freigeben über


ZwEnumerateValueKey-Funktion (wdm.h)

Die ZwEnumerateValueKey-Routine ruft Informationen zu den Werteinträgen eines geöffneten Schlüssels ab.

Syntax

NTSYSAPI NTSTATUS ZwEnumerateValueKey(
  [in]            HANDLE                      KeyHandle,
  [in]            ULONG                       Index,
  [in]            KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
  [out, optional] PVOID                       KeyValueInformation,
  [in]            ULONG                       Length,
  [out]           PULONG                      ResultLength
);

Parameter

[in] KeyHandle

Behandeln Sie den Registrierungsschlüssel, für den Sie Werteinträge aufzählen möchten. Ein erfolgreicher Aufruf von ZwCreateKey oder ZwOpenKey erstellt dieses Handle.

[in] Index

Der nullbasierte Index des Unterschlüssels, für den Sie Wertinformationen benötigen.

[in] KeyValueInformationClass

Gibt einen KEY_VALUE_INFORMATION_CLASS Wert an, der den Typ der im KeyValueInformation-Puffer zurückgegebenen Informationen bestimmt.

[out, optional] KeyValueInformation

Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der die angeforderten Informationen empfängt.

[in] Length

Gibt die Größe des KeyValueInformation-Puffers in Bytes an.

[out] ResultLength

Zeiger auf eine Variable, die die Größe der Wertinformationen in Byte empfängt. Wenn diese Routine STATUS_SUCCESS zurückgibt, gibt die Variable die zurückgegebene Datenmenge an. Wenn diese Routine STATUS_BUFFER_OVERFLOW oder STATUS_BUFFER_TOO_SMALL zurückgibt, gibt die Variable die Puffergröße an, die erforderlich ist, um die Wertinformationen zu enthalten.

Rückgabewert

ZwEnumerateValueKey gibt STATUS_SUCCESS bei Erfolg oder den entsprechenden Fehlercode bei Einem Fehler zurück. Mögliche Fehlercodewerte sind:

Rückgabecode Beschreibung
STATUS_BUFFER_OVERFLOW Der bereitgestellte Puffer ist zu klein, und es wurden nur teilweise Daten in den Puffer geschrieben. *ResultLength ist auf die Mindestgröße festgelegt, die erforderlich ist, um die angeforderten Informationen zu enthalten.
STATUS_BUFFER_TOO_SMALL Der bereitgestellte Puffer ist zu klein, und es wurden keine Daten in den Puffer geschrieben. *ResultLength ist auf die Mindestgröße festgelegt, die erforderlich ist, um die angeforderten Informationen zu enthalten.
STATUS_INVALID_PARAMETER Der KeyInformationClass-Parameter ist kein gültiger KEY_VALUE_INFORMATION_CLASS Wert.
STATUS_NO_MORE_ENTRIES Der Indexwert liegt außerhalb des Bereichs für den registrierungsschlüssel, der von KeyHandle angegeben wird. Wenn ein Schlüssel beispielsweise über n Unterschlüssel verfügt, gibt die Routine für jeden Wert, der größer als n-1 ist, STATUS_NO_MORE_ENTRIES zurück.

Hinweise

Das an ZwEnumerateValueKey übergebeneKeyHandle muss mit KEY_QUERY_VALUE Zugriff geöffnet worden sein. Dies wird erreicht, indem KEY_QUERY_VALUE, KEY_READ oder KEY_ALL_ACCESS als DesiredAccess-Parameter an ZwCreateKey oder ZwOpenKey übergeben werden.

Der Index ist einfach eine Möglichkeit, zwischen Unterschlüsseln mit Werteinträgen auszuwählen. Zwei Aufrufe von ZwEnumerateValueKey mit demselben Index geben nicht garantiert dieselben Ergebnisse zurück.

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 "NtEnumerateValueKey" anstelle von "ZwEnumerateValueKey" verwenden.

Bei Aufrufen von Kernelmodustreibern können sich die NtXxx - und ZwXxx-Versionen einer Windows Native System Services-Routine anders verhalten, wie sie Eingabeparameter verarbeiten und interpretieren. Weitere Informationen zur Beziehung zwischen den Nt Xxx- und ZwXxx-Versionen einer Routine finden Sie unter Verwenden von Nt- und Zw-Versionen der systemeigenen Systemdienstroutinen.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), IrqlZwPassive(wdm), PowerIrpDDis(wdm), ZwRegistryCreate(storport), ZwRegistryCreate(storport), ZwRegistryCreate(wdm), ZwRegistryOpen(storport), ZwRegistryOpen(storport), ZwRegistryOpen(wdm)

Weitere Informationen

KEY_VALUE_BASIC_INFORMATION

KEY_VALUE_FULL_INFORMATION

KEY_VALUE_PARTIAL_INFORMATION

Verwenden von Nt- und Zw-Versionen der Systemdienstroutinen

ZwClose

ZwCreateKey

ZwOpenKey

ZwQueryValueKey