Función RegQueryMultipleValuesA (winreg.h)

Recupera el tipo y los datos de una lista de nombres de valor asociados a una clave del Registro abierta.

Sintaxis

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

Parámetros

[in] hKey

Identificador de una clave del Registro abierta. La clave debe haberse abierto con el derecho de acceso KEY_QUERY_VALUE. Para obtener más información, vea

Derechos de seguridad y acceso de la clave del Registro.

Este identificador lo devuelve la función RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyEx o RegOpenKeyTransacted . También puede ser una de las siguientes claves predefinidas:

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_PERFORMANCE_DATA
HKEY_USERS

[out] val_list

Puntero a una matriz de

Estructuras VALENT que describen una o más entradas de valor. En la entrada, el miembro ve_valuename de cada estructura debe contener un puntero al nombre de un valor que se va a recuperar. Se produce un error en la función si alguno de los valores especificados no existe en la clave especificada.

Si la función se ejecuta correctamente, cada elemento de la matriz contiene la información del valor especificado.

[in] num_vals

Número de elementos de la matriz val_list .

[out, optional] lpValueBuf

Puntero a un búfer. Si la función se ejecuta correctamente, el búfer recibe los datos de cada valor.

Si lpValueBuf es NULL, el valor al que apunta el parámetro ldwTotsize debe ser cero, en cuyo caso la función devuelve ERROR_MORE_DATA y ldwTotsize recibe el tamaño necesario del búfer, en bytes.

[in, out, optional] ldwTotsize

Puntero a una variable que especifica el tamaño del búfer al que apunta el parámetro lpValueBuf , en bytes. Si la función se ejecuta correctamente, ldwTotsize recibe el número de bytes copiados en el búfer. Si se produce un error en la función porque el búfer es demasiado pequeño, ldwTotsize recibe el tamaño necesario, en bytes.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS.

Si se produce un error en la función, el valor devuelto es uno de los siguientes códigos de error.

Código devuelto Descripción
ERROR_CANTREAD

RegQueryMultipleValues no puede crear instancias ni acceder al proveedor de la clave dinámica.

ERROR_MORE_DATA
El búfer al que apunta lpValueBuf era demasiado pequeño. En este caso, ldwTotsize recibe el tamaño de búfer necesario.
ERROR_TRANSFER_TOO_LONG
El tamaño total de los datos solicitados (tamaño de la matriz val_list + ldwTotSize) es mayor que el límite del sistema de un megabyte.

Comentarios

La función RegQueryMultipleValues permite a una aplicación consultar uno o varios valores de una clave estática o dinámica. Si la clave de destino es una clave estática, el sistema proporciona todos los valores de forma atómica. Para evitar una serialización excesiva, los datos agregados devueltos por la función no pueden superar un megabyte.

Si la clave de destino es una clave dinámica, su proveedor debe proporcionar todos los valores de forma atómica. Esto significa que el proveedor debe rellenar el búfer de resultados de forma sincrónica, lo que proporciona una vista coherente de todos los valores del búfer, a la vez que evita una serialización excesiva. El proveedor puede proporcionar como máximo un megabyte de los datos de salida totales durante una llamada atómica a esta función.

RegQueryMultipleValues se admite de forma remota; Es decir, el parámetro hKey pasado a la función puede hacer referencia a un equipo remoto.

Nota

El encabezado winreg.h define RegQueryMultipleValues como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winreg.h (incluya Windows.h)
Library Advapi32.lib
Archivo DLL Advapi32.dll

Consulte también

Funciones del Registro

Introducción al Registro

VALENT