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

KEY_VALUE_BASIC_INFORMATION

KEY_VALUE_FULL_INFORMATION

KEY_VALUE_PARTIAL_INFORMATION

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

ZwClose

ZwCreateKey

ZwOpenKey

ZwQueryValueKey