Condividi tramite


Funzione RegQueryValueA (winreg.h)

Recupera i dati associati al valore predefinito o senza nome di una chiave del Registro di sistema specificata. I dati devono essere un nullstringa con terminazione.

Nota Questa funzione viene fornita solo per compatibilità con le versioni a 16 bit di Windows. Le applicazioni devono usare la funzione RegQueryValueEx .
 

Sintassi

LSTATUS RegQueryValueA(
  [in]                HKEY   hKey,
  [in, optional]      LPCSTR lpSubKey,
  [out, optional]     LPSTR  lpData,
  [in, out, optional] PLONG  lpcbData
);

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 delle chiavi del Registro di sistema e diritti di accesso.

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_USERS

[in, optional] lpSubKey

Nome della sottochiave del parametro hKey per cui viene recuperato il valore predefinito.

I nomi delle chiavi non fanno distinzione tra maiuscole e minuscole.

Se questo parametro è NULL o punta a una stringa vuota, la funzione recupera il valore predefinito per la chiave identificata da hKey.

Per altre informazioni, vedere Limiti delle dimensioni degli elementi del Registro di sistema .

[out, optional] lpData

Puntatore a un buffer che riceve il valore predefinito della chiave specificata.

Se lpValue è NULLe lpcbValue non èNULL, la funzione restituisce ERROR_SUCCESS e archivia le dimensioni dei dati, in byte, nella variabile a cui punta lpcbValue. Ciò consente a un'applicazione di determinare il modo migliore per allocare un buffer per i dati del valore.

[in, out, optional] lpcbData

Puntatore a una variabile che specifica le dimensioni del buffer a cui punta il parametro lpValue in byte. Quando la funzione viene restituita, questa variabile contiene le dimensioni dei dati copiati in lpValue, incluse eventuali caratteri null.

Se i dati hanno il REG_SZ, REG_MULTI_SZ o REG_EXPAND_SZ tipo, questa dimensione include qualsiasi carattere o carattere null terminazione . Per altre informazioni, vedere Osservazioni.

Se il buffer specificato lpValue non è sufficientemente grande da contenere i dati, la funzione restituisce ERROR_MORE_DATA e archivia le dimensioni del buffer necessarie nella variabile a cui punta lpcbValue. In questo caso, il contenuto del buffer di lpValue buffer non è definito.

Valore restituito

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

Se la funzione ha esito negativo, il valore restituito è un codice di errore di sistema .

Se il buffer lpValue è troppo piccolo per ricevere il valore, la funzione restituisce ERROR_MORE_DATA.

Osservazioni

Se viene utilizzata la versione ANSI di questa funzione (chiamando in modo esplicito RegQueryValueA o non definendo UNICODE prima di includere il file Windows.h), questa funzione converte la stringa Unicode archiviata in una stringa ANSI prima di copiarla nel buffer specificato dal parametro lpValue.

Se i dati hanno il REG_SZ, REG_MULTI_SZ o il tipo di REG_EXPAND_SZ, è possibile che la stringa non sia stata archiviata con il nullcaratteri di terminazione. Pertanto, anche se la funzione restituisce ERROR_SUCCESS, l'applicazione deve assicurarsi che la stringa venga terminata correttamente prima di usarla; in caso contrario, può sovrascrivere un buffer. Si noti che le stringhe di REG_MULTI_SZ devono avere due -caratteri di terminazione.

Si noti che le operazioni che accedono a determinate chiavi del Registro di sistema vengono reindirizzate. Per altre informazioni, vedere Registry Virtualization e dati dell'applicazione a 32 bit e a 64 bit nel Registro di sistema.

Nota

L'intestazione winreg.h definisce RegQueryValue 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

RegEnumKeyEx

RegEnumValue

RegQueryInfoKey

RegQueryValueEx

RegSetValueEx

funzioni del Registro di sistema

Panoramica del Registro di sistema