Funzione RegQueryMultipleValuesA (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 RegQueryMultipleValuesA(
[in] HKEY hKey,
[out] PVALENTA val_list,
[in] DWORD num_vals,
[out, optional] LPSTR 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
i diritti di accesso e sicurezza delle chiavi del Registro di sistema.
Questo handle viene restituito dal RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyExo funzione 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 di VALENT che descrivono una o più voci di valore. In caso di 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
Valore restituito
Se la funzione ha esito positivo, il valore restituito è ERROR_SUCCESS.
Se la funzione ha esito negativo, il valore restituito è uno dei codici di errore seguenti.
Codice restituito | Descrizione |
---|---|
|
RegQueryMultipleValues non è possibile creare un'istanza o accedere al provider della chiave dinamica. |
|
Il buffer a cui punta lpValueBuf era troppo piccolo. In questo caso, ldwTotsize riceve le dimensioni del buffer necessarie. |
|
Le dimensioni totali dei dati richiesti (dimensioni della matrice val_list + ldwTotSize) sono superiori al limite di sistema di un megabyte. |
Osservazioni
La funzione regQueryMultipleValues
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 un numero eccessivo di serializzazioni. Il provider può fornire al massimo un megabyte di dati di output totali durante una chiamata atomica a questa funzione.
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 non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 2000 Professional [solo app desktop] |
server minimo supportato | Windows 2000 Server [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
winreg.h (include Windows.h) |
libreria |
Advapi32.lib |
dll | Advapi32.dll |
Vedere anche
funzioni del Registro di sistema