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


Функция 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

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

Если lpValueBufNULL, значение, указываемое параметром 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 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка winreg.h (включая Windows.h)
библиотеки Advapi32.lib
DLL Advapi32.dll

См. также

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

Обзор реестра

VALENT