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 |
---|---|
|
RegQueryMultipleValues ne peut pas instancier ou accéder au fournisseur de la clé dynamique. |
|
La mémoire tampon pointée par lpValueBuf était trop petite. Dans ce cas, ldwTotsize reçoit la taille de mémoire tampon requise. |
|
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 |