Funzione ZwQueryKey (wdm.h)

La routine ZwQueryKey fornisce informazioni sulla classe di una chiave del Registro di sistema e sul numero e le dimensioni delle relative sottochiavi.

Sintassi

NTSYSAPI NTSTATUS ZwQueryKey(
  [in]            HANDLE                KeyHandle,
  [in]            KEY_INFORMATION_CLASS KeyInformationClass,
  [out, optional] PVOID                 KeyInformation,
  [in]            ULONG                 Length,
  [out]           PULONG                ResultLength
);

Parametri

[in] KeyHandle

Gestire la chiave del Registro di sistema per ottenere informazioni su . Questo handle viene creato da una chiamata riuscita a ZwCreateKey o ZwOpenKey.

[in] KeyInformationClass

Specifica un valore KEY_INFORMATION_CLASS che determina il tipo di informazioni restituite nel buffer KeyInformation .

[out, optional] KeyInformation

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

[in] Length

Specifica le dimensioni, in byte, del buffer KeyInformation .

[out] ResultLength

Puntatore a una variabile che riceve le dimensioni, in byte, delle informazioni sulla chiave richiesta. Se ZwQueryKey restituisce STATUS_SUCCESS, la variabile contiene la quantità di dati restituiti. Se ZwQueryKey restituisce STATUS_BUFFER_OVERFLOW o STATUS_BUFFER_TOO_SMALL, è possibile usare il valore della variabile per determinare le dimensioni del buffer necessarie.

Valore restituito

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

Codice restituito Descrizione
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_INFORMATION_CLASS valido.

Commenti

KeyHandle passato a ZwQueryKey deve essere stato aperto con accesso KEY_QUERY_VALUE. A tale scopo, passare KEY_QUERY_VALUE, KEY_READ o KEY_ALL_ACCESS come parametro DesiredAccess a ZwCreateKey o ZwOpenKey.

Se KeyInformationClass è KeyNameInformation o KeyHandleTagsInformation, il requisito KEY_QUERY_VALUE non si applica.

ZwQueryKey può essere usato per ottenere informazioni che è possibile usare per allocare buffer per contenere i dati del Registro di sistema, ad esempio la dimensione massima delle voci di valore di una chiave o i nomi di sottochiave o il numero di sottochiavi. Ad esempio, è possibile chiamare ZwQueryKey, usare le informazioni restituite per allocare un buffer per una sottochiave, chiamare ZwEnumerateKey per ottenere il nome della sottochiave e passare tale nome a una routine RtlXxxRegistry .

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 "NtQueryKey" anziché "ZwQueryKey".

Per le chiamate da driver in modalità kernel, le versioni NtXxx e ZwXxx di una routine di Servizi di sistema nativi di Windows 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 Using Nt and Zw Versions of the Native System Services Routines .For more information about the Nt Xxx and Zw versions of the Native System Services Routines.

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_BASIC_INFORMATION

KEY_CACHED_INFORMATION

KEY_FULL_INFORMATION

KEY_INFORMATION_CLASS

KEY_NAME_INFORMATION

KEY_NODE_INFORMATION

KEY_VIRTUALIZATION_INFORMATION

Uso delle versioni Nt e Zw delle routine native di Servizi di sistema

ZwClose

ZwEnumerateKey

ZwOpenKey