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_VIRTUALIZATION_INFORMATION
Uso delle versioni Nt e Zw delle routine native di Servizi di sistema