Share via


ZwQueryValueKey-Funktion (wdm.h)

Die ZwQueryValueKey-Routine gibt einen Werteintrag für einen Registrierungsschlüssel zurück.

Syntax

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

Parameter

[in] KeyHandle

Handle mit dem Schlüssel zum Lesen von Werteinträgen. Dieses Handle wird durch einen erfolgreichen Aufruf von ZwCreateKey oder ZwOpenKey erstellt.

[in] ValueName

Zeiger auf den Namen des Werteintrags, für den Daten abgerufen werden sollen.

[in] KeyValueInformationClass

Ein KEY_VALUE_INFORMATION_CLASS Wert, 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 Puffers KeyValueInformation in Bytes an.

[out] ResultLength

Zeiger auf eine Variable, die die Größe der Schlüsselinformationen in Bytes empfängt. Wenn die ZwQueryValueKey-Routine STATUS_SUCCESS zurückgibt, können Aufrufer den Wert dieser Variablen verwenden, um die Menge der zurückgegebenen Daten zu bestimmen. Wenn die Routine STATUS_BUFFER_OVERFLOW oder STATUS_BUFFER_TOO_SMALL zurückgibt, können Aufrufer den Wert dieser Variablen verwenden, um die Größe des Puffers zu bestimmen, der zum Halten der Schlüsselinformationen erforderlich ist.

Rückgabewert

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

Rückgabecode Beschreibung
STATUS_OBJECT_NAME_NOT_FOUND Der Registrierungswert war nicht verfügbar.
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.

Hinweise

Das an ZwQueryValueKey ü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.

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 "NtQueryValueKey" anstelle von "ZwQueryValueKey" verwenden. Bei Aufrufen von Kernelmodustreibern können sich die NtXxx - und ZwXxx-Versionen einer Windows Native System Services-Routine anders verhalten, da 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 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_INFORMATION_CLASS

KEY_VALUE_PARTIAL_INFORMATION

Verwenden von Nt- und Zw-Versionen der Systemdienstroutinen

ZwCreateKey

ZwEnumerateValueKey

ZwOpenKey