Partager via


Fonction RegQueryMultipleValuesA (winreg.h)

Récupère le type et les données d’une liste de noms de valeurs associés à une clé de Registre ouverte.

Syntaxe

LSTATUS RegQueryMultipleValuesA(
  [in]                HKEY     hKey,
  [out]               PVALENTA val_list,
  [in]                DWORD    num_vals,
  [out, optional]     LPSTR    lpValueBuf,
  [in, out, optional] LPDWORD  ldwTotsize
);

Paramètres

[in] hKey

Handle d’une clé de Registre ouverte. La clé doit avoir été ouverte avec le droit d’accès KEY_QUERY_VALUE. Pour plus d'informations, consultez la rubrique

Sécurité de la clé de Registre et droits d’accès.

Ce handle est retourné par la fonction RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyEx ou RegOpenKeyTransacted . Il peut également s’agir de l’une des clés prédéfinies suivantes :

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_PERFORMANCE_DATA
HKEY_USERS

[out] val_list

Pointeur vers un tableau de

Structures VALENT qui décrivent une ou plusieurs entrées de valeur. Lors de l’entrée, le ve_valuename membre de chaque structure doit contenir un pointeur vers le nom d’une valeur à récupérer. La fonction échoue si l’une des valeurs spécifiées n’existe pas dans la clé spécifiée.

Si la fonction réussit, chaque élément du tableau contient les informations relatives à la valeur spécifiée.

[in] num_vals

Nombre d’éléments dans le tableau val_list .

[out, optional] lpValueBuf

Pointeur vers une mémoire tampon. Si la fonction réussit, la mémoire tampon reçoit les données de chaque valeur.

Si lpValueBuf a la valeur NULL, la valeur pointée vers le paramètre ldwTotsize doit être zéro, auquel cas la fonction retourne ERROR_MORE_DATA et ldwTotsize reçoit la taille requise de la mémoire tampon, en octets.

[in, out, optional] ldwTotsize

Pointeur vers une variable qui spécifie la taille de la mémoire tampon pointée vers le paramètre lpValueBuf , en octets. Si la fonction réussit, ldwTotsize reçoit le nombre d’octets copiés dans la mémoire tampon. Si la fonction échoue parce que la mémoire tampon est trop petite, ldwTotsize reçoit la taille requise, en octets.

Valeur retournée

Si la fonction réussit, la valeur de retour est ERROR_SUCCESS.

Si la fonction échoue, la valeur de retour est l’un des codes d’erreur suivants.

Code de retour Description
ERROR_CANTREAD

RegQueryMultipleValues ne peut pas instancier ou accéder au fournisseur de la clé dynamique.

ERROR_MORE_DATA
La mémoire tampon pointée vers lpValueBuf était trop petite. Dans ce cas, ldwTotsize reçoit la taille de mémoire tampon requise.
ERROR_TRANSFER_TOO_LONG
La taille totale des données demandées (taille du tableau val_list + ldwTotSize) est supérieure à la limite système d’un mégaoctet.

Remarques

La fonction RegQueryMultipleValues permet à une application d’interroger une ou plusieurs valeurs d’une clé statique ou dynamique. Si la clé cible est une clé statique, le système fournit toutes les valeurs de manière atomique. Pour éviter une sérialisation excessive, les données agrégées retournées par la fonction ne peuvent pas dépasser un mégaoctet.

Si la clé cible est une clé dynamique, son fournisseur doit fournir toutes les valeurs de manière atomique. Cela signifie que le fournisseur doit remplir la mémoire tampon de résultats de manière synchrone, ce qui fournit une vue cohérente de toutes les valeurs de la mémoire tampon tout en évitant une sérialisation excessive. Le fournisseur peut fournir au maximum un mégaoctet de données de sortie totales pendant un appel atomique à cette fonction.

RegQueryMultipleValues est pris en charge à distance ; autrement dit, le paramètre hKey passé à la fonction peut faire référence à un ordinateur distant.

Notes

L’en-tête winreg.h définit RegQueryMultipleValues comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winreg.h (inclure Windows.h)
Bibliothèque Advapi32.lib
DLL Advapi32.dll

Voir aussi

Fonctions du Registre

Vue d’ensemble du Registre

VALENT