Condividi tramite


Funzione ZwQueryValueKey (wdm.h)

La routine ZwQueryValueKey restituisce una voce di valore per una chiave del Registro di sistema.

Sintassi

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
);

Parametri

[in] KeyHandle

Gestire la chiave da cui leggere le voci del valore. Questo handle viene creato da una chiamata riuscita a ZwCreateKey o ZwOpenKey.

[in] ValueName

Puntatore al nome della voce del valore per ottenere i dati.

[in] KeyValueInformationClass

Valore KEY_VALUE_INFORMATION_CLASS che determina il tipo di informazioni restituite nel buffer KeyValueInformation .

[out, optional] KeyValueInformation

Puntatore a un buffer allocato dal chiamante che riceve le informazioni richieste.

[in] Length

Specifica le dimensioni, in byte, del buffer KeyValueInformation .

[out] ResultLength

Puntatore a una variabile che riceve le dimensioni, in byte, delle informazioni sulla chiave. Se la routine ZwQueryValueKey restituisce STATUS_SUCCESS, i chiamanti possono usare il valore di questa variabile per determinare la quantità di dati restituiti. Se la routine restituisce STATUS_BUFFER_OVERFLOW o STATUS_BUFFER_TOO_SMALL, i chiamanti possono usare il valore di questa variabile per determinare la dimensione del buffer necessaria per contenere le informazioni sulla chiave.

Valore restituito

ZwQueryValueKey restituisce STATUS_SUCCESS in caso di esito positivo o il codice di errore appropriato in caso di errore. I possibili valori del codice di errore includono:

Codice restituito Descrizione
STATUS_OBJECT_NAME_NOT_FOUND Il valore del Registro di sistema non è stato disponibile.
STATUS_BUFFER_OVERFLOW Il buffer fornito è troppo piccolo e solo i dati parziali sono stati scritti nel buffer. ResultLength è impostato sulle dimensioni minime necessarie per contenere le informazioni richieste.
STATUS_BUFFER_TOO_SMALL Il buffer fornito è troppo piccolo e non sono stati scritti dati nel buffer. ResultLength è impostato sulle dimensioni minime necessarie per contenere le informazioni richieste.
STATUS_INVALID_PARAMETER Il parametro KeyInformationClass non è un valore KEY_VALUE_INFORMATION_CLASS valido.

Commenti

KeyHandle passato a ZwQueryValueKey deve essere stato aperto con l'accesso KEY_QUERY_VALUE. Questa operazione viene eseguita passando KEY_QUERY_VALUE, KEY_READ o KEY_ALL_ACCESS come parametro DesiredAccess a ZwCreateKey o ZwOpenKey.

Per altre informazioni sull'uso delle chiavi del Registro di sistema, vedere Uso del Registro di sistema in un driver.

Se la chiamata a questa funzione si verifica in modalità utente, è necessario usare il nome "NtQueryValueKey" anziché "ZwQueryValueKey". Per le chiamate dai driver in modalità kernel, le versioni NtXxx e ZwXxx di una routine di Windows Native System Services possono comportarsi in modo diverso nel modo in cui gestiscono e interpretano i parametri di input. Per altre informazioni sulla relazione tra le versioni NtXxx e ZwXxx di una routine, vedere Uso di nt e zw versioni delle routine di Servizi di sistema nativo.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regole di conformità DDI HwStorPortProhibitedDDDIs(storport), IrqlZwPassive(wdm), PowerIrpDDis(wdm), ZwRegistryCreate(storport), ZwRegistryCreate(storport), ZwRegistryCreate(wdm), ZwRegistryOpen(storport), ZwRegistryOpen(storport), ZwRegistryOpen(wdm)

Vedi anche

KEY_VALUE_BASIC_INFORMATION

KEY_VALUE_FULL_INFORMATION

KEY_VALUE_INFORMATION_CLASS

KEY_VALUE_PARTIAL_INFORMATION

Uso di nt e zw versioni delle routine di Servizi di sistema nativo

ZwCreateKey

ZwEnumerateValueKey

ZwOpenKey