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
Uso di nt e zw versioni delle routine di Servizi di sistema nativo