Funzione RegQueryMultipleValuesW (winreg.h)

Recupera il tipo e i dati per un elenco di nomi di valore associati a una chiave del Registro di sistema aperta.

Sintassi

LSTATUS RegQueryMultipleValuesW(
  [in]                HKEY     hKey,
  [out]               PVALENTW val_list,
  [in]                DWORD    num_vals,
  [out, optional]     LPWSTR   lpValueBuf,
  [in, out, optional] LPDWORD  ldwTotsize
);

Parametri

[in] hKey

Handle per una chiave del Registro di sistema aperta. La chiave deve essere stata aperta con il diritto di accesso KEY_QUERY_VALUE. Per altre informazioni, vedere Sicurezza e diritti di accesso delle chiavi del Registro di sistema.

Questo handle viene restituito dalla funzione RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyEx o RegOpenKeyTransacted . Può anche essere una delle chiavi predefinite seguenti:

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_PERFORMANCE_DATA
HKEY_USERS

[out] val_list

Puntatore a una matrice di strutture VALENT che descrivono una o più voci di valore. Nell'input, il membro ve_valuename di ogni struttura deve contenere un puntatore al nome di un valore da recuperare. La funzione ha esito negativo se uno dei valori specificati non esiste nella chiave specificata.

Se la funzione ha esito positivo, ogni elemento della matrice contiene le informazioni per il valore specificato.

[in] num_vals

Numero di elementi nella matrice val_list .

[out, optional] lpValueBuf

Puntatore a un buffer. Se la funzione ha esito positivo, il buffer riceve i dati per ogni valore.

Se lpValueBuf è NULL, il valore a cui punta il parametro ldwTotsize deve essere zero, nel qual caso la funzione restituisce ERROR_MORE_DATA e ldwTotsize riceve le dimensioni necessarie del buffer, in byte.

[in, out, optional] ldwTotsize

Puntatore a una variabile che specifica le dimensioni del buffer a cui punta il parametro lpValueBuf , in byte. Se la funzione ha esito positivo, ldwTotsize riceve il numero di byte copiati nel buffer. Se la funzione ha esito negativo perché il buffer è troppo piccolo, ldwTotsize riceve le dimensioni richieste, in byte.

Valore restituito

Se la funzione ha esito positivo, il valore restituito viene ERROR_SUCCESS.

Se la funzione ha esito negativo, il valore restituito è uno dei codici di errore seguenti.

Codice restituito Descrizione
ERROR_CANTREAD

RegQueryMultipleValues non può creare un'istanza o accedere al provider della chiave dinamica.

ERROR_MORE_DATA
Il buffer a cui punta lpValueBuf era troppo piccolo. In questo caso , ldwTotsize riceve le dimensioni del buffer necessarie.
ERROR_TRANSFER_TOO_LONG
Le dimensioni totali dei dati richiesti (dimensioni della matrice val_list + ldwTotSize) sono superiori al limite di sistema di un megabyte.

Commenti

La funzione RegQueryMultipleValues consente a un'applicazione di eseguire query su uno o più valori di una chiave statica o dinamica. Se la chiave di destinazione è una chiave statica, il sistema fornisce tutti i valori in modo atomico. Per evitare una serializzazione eccessiva, i dati aggregati restituiti dalla funzione non possono superare un megabyte.

Se la chiave di destinazione è una chiave dinamica, il provider deve fornire tutti i valori in modo atomico. Ciò significa che il provider deve riempire il buffer dei risultati in modo sincrono, fornendo una visualizzazione coerente di tutti i valori nel buffer evitando una serializzazione eccessiva. Il provider può fornire al massimo un megabyte di dati di output totali durante una chiamata atomica a questa funzione.

RegQueryMultipleValues è supportato in remoto; ovvero, il parametro hKey passato alla funzione può fare riferimento a un computer remoto.

Nota

L'intestazione winreg.h definisce RegQueryMultipleValues come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winreg.h (include Windows.h)
Libreria Advapi32.lib
DLL Advapi32.dll

Vedi anche

Funzioni del Registro di sistema

Panoramica del Registro di sistema

VALENT