Funzione ZwEnumerateValueKey (wdm.h)
La routine ZwEnumerateValueKey ottiene informazioni sulle voci di valore di una chiave aperta.
Sintassi
NTSYSAPI NTSTATUS ZwEnumerateValueKey(
[in] HANDLE KeyHandle,
[in] ULONG Index,
[in] KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
[out, optional] PVOID KeyValueInformation,
[in] ULONG Length,
[out] PULONG ResultLength
);
Parametri
[in] KeyHandle
Gestire la chiave del Registro di sistema per cui si desidera enumerare le voci di valore. Una chiamata riuscita a ZwCreateKey o ZwOpenKey crea questo handle.
[in] Index
Indice in base zero della sottochiave per cui si desidera ottenere informazioni sul valore.
[in] KeyValueInformationClass
Specifica un 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 sul valore. Se questa routine restituisce STATUS_SUCCESS, la variabile indica la quantità di dati restituiti. Se questa routine restituisce STATUS_BUFFER_OVERFLOW o STATUS_BUFFER_TOO_SMALL, la variabile indica le dimensioni del buffer necessarie per contenere le informazioni sul valore.
Valore restituito
ZwEnumerateValueKey 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 di KEY_VALUE_INFORMATION_CLASS valido. |
STATUS_NO_MORE_ENTRIES | Il valore index non è compreso nell'intervallo per la chiave del Registro di sistema specificata da KeyHandle. Ad esempio, se una chiave ha n sottochiavi, per qualsiasi valore maggiore di n-1 la routine restituisce STATUS_NO_MORE_ENTRIES. |
Commenti
KeyHandle passato a ZwEnumerateValueKey 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.
L'indice è semplicemente un modo per selezionare tra sottochiavi con voci di valore. Non è garantito che due chiamate a ZwEnumerateValueKey con lo stesso indice restituiscano gli stessi risultati.
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 viene eseguita in modalità utente, è necessario usare il nome "NtEnumerateValueKey" anziché "ZwEnumerateValueKey".
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
Uso delle versioni Nt e Zw delle routine native di Servizi di sistema