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 |
---|---|
|
RegQueryMultipleValues ne peut pas instancier ou accéder au fournisseur de la clé dynamique. |
|
La mémoire tampon pointée vers 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 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 |