Поделиться через


Функция RegQueryMultipleValuesA (winreg.h)

Извлекает тип и данные для списка имен значений, связанных с открытым разделом реестра.

Синтаксис

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

Параметры

[in] hKey

Дескриптор открытого раздела реестра. Ключ должен быть открыт с правом доступа KEY_QUERY_VALUE. Дополнительные сведения см. в разделе

Раздел реестра: безопасность и права доступа.

Этот дескриптор возвращается функцией RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyEx или RegOpenKeyTransacted . Это также может быть один из следующих предопределенных ключей:

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_PERFORMANCE_DATA
HKEY_USERS

[out] val_list

Указатель на массив

Структуры VALENT, описывающие одну или несколько записей значений. На входных данных элемент ve_valuename каждой структуры должен содержать указатель на имя извлекаемого значения. Функция завершается ошибкой, если какое-либо из указанных значений не существует в указанном ключе.

Если функция выполняется успешно, каждый элемент массива содержит сведения для указанного значения.

[in] num_vals

Количество элементов в массиве val_list .

[out, optional] lpValueBuf

Указатель на буфер. Если функция выполняется успешно, буфер получает данные для каждого значения.

Если lpValueBuf имеет значение NULL, значение, на которое указывает параметр ldwTotsize , должно быть равно нулю. В этом случае функция возвращает ERROR_MORE_DATA и ldwTotsize получает требуемый размер буфера в байтах.

[in, out, optional] ldwTotsize

Указатель на переменную, указывающую размер буфера, на который указывает параметр lpValueBuf , в байтах. Если функция выполнена успешно, ldwTotsize получает количество байтов, скопированных в буфер. Если функция завершается сбоем из-за слишком маленького буфера, ldwTotsize получает необходимый размер в байтах.

Возвращаемое значение

Если функция выполняется успешно, возвращаемое значение будет ERROR_SUCCESS.

Если функция завершается сбоем, возвращаемое значение представляет собой один из следующих кодов ошибок.

Код возврата Описание
ERROR_CANTREAD

RegQueryMultipleValues не может создать экземпляр или получить доступ к поставщику динамического ключа.

ERROR_MORE_DATA
Буфер, на который указывает lpValueBuf, был слишком мал. В этом случае ldwTotsize получает требуемый размер буфера.
ERROR_TRANSFER_TOO_LONG
Общий размер запрошенных данных (размер массива val_list + ldwTotSize) превышает системное ограничение в один мегабайт.

Комментарии

Функция RegQueryMultipleValues позволяет приложению запрашивать одно или несколько значений статического или динамического ключа. Если целевой ключ является статическим, система предоставляет все значения атомарным образом. Чтобы предотвратить чрезмерную сериализацию, агрегированные данные, возвращаемые функцией, не могут превышать один мегабайт.

Если целевой ключ является динамическим, его поставщик должен предоставить все значения атомарным образом. Это означает, что поставщик должен заполнять буфер результатов синхронно, обеспечивая согласованное представление всех значений в буфере, избегая при этом чрезмерной сериализации. Поставщик может предоставить не более одного мегабайта общих выходных данных во время атомарного вызова этой функции.

RegQueryMultipleValues поддерживается удаленно; то есть параметр hKey , переданный функции, может ссылаться на удаленный компьютер.

Примечание

Заголовок winreg.h определяет RegQueryMultipleValues в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winreg.h (включая Windows.h)
Библиотека Advapi32.lib
DLL Advapi32.dll

См. также раздел

Функции реестра

Общие сведения о реестре

ВАЛЕНТ