Partager via


RegQueryMultipleValuesW, fonction (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 RegQueryMultipleValuesW(
  [in]                HKEY     hKey,
  [out]               PVALENTW val_list,
  [in]                DWORD    num_vals,
  [out, optional]     LPWSTR   lpValueBuf,
  [in, out, optional] LPDWORD  ldwTotsize
);

Paramètres

[in] hKey

Handle vers 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 sécurité des clés de Registre et droits d’accès.

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

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 membre ve_valuename 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 de 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 est NULL, la valeur pointée par 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 par 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, car la mémoire tampon est trop petite, ldwTotsize reçoit la taille requise, en octets.

Valeur de retour

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.

Retourner le code 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 par 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 d’une 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 d’une manière atomique. Cela signifie que le fournisseur doit remplir la mémoire tampon des résultats de manière synchrone, en fournissant 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 plus 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.

Note

L’en-tête winreg.h définit RegQueryMultipleValues comme 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
serveur minimum pris en charge Windows 2000 Server [applications de bureau uniquement]
plateforme cible Windows
d’en-tête winreg.h (inclure Windows.h)
bibliothèque Advapi32.lib
DLL Advapi32.dll

Voir aussi

fonctions de Registre

Vue d’ensemble du Registre

VALENT