Función RegQueryMultipleValuesW (winreg.h)
Recupera el tipo y los datos de una lista de nombres de valor asociados a una clave del Registro abierta.
Sintaxis
LSTATUS RegQueryMultipleValuesW(
[in] HKEY hKey,
[out] PVALENTW val_list,
[in] DWORD num_vals,
[out, optional] LPWSTR 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, consulte Derechos de acceso y seguridad de 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 varias entradas de valor. En la entrada, el ve_valuename miembro 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 realiza 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 realiza 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 realiza 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 |
---|---|
|
RegQueryMultipleValues no puede crear instancias ni tener acceso al proveedor de la clave dinámica. |
|
El búfer al que apunta lpValueBuf era demasiado pequeño. En este caso, ldwTotsize recibe el tamaño de búfer necesario. |
|
El tamaño total de los datos solicitados (tamaño de la matriz de 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 se 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 neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o 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 (incluye Windows.h) |
Library | Advapi32.lib |
Archivo DLL | Advapi32.dll |