Функция 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.
Если функция завершается ошибкой, возвращаемое значение является одним из следующих кодов ошибок.
Возвращаемый код | Описание |
---|---|
|
RegQueryMultipleValues не может создать экземпляр или получить доступ к поставщику динамического ключа. |
|
Буфер, указывающий на lpValueBuf был слишком мал. В этом случае ldwTotsize получает требуемый размер буфера. |
|
Общий размер запрошенных данных (размер массива val_list + ldwTotSize) превышает системное ограничение одного мегабайта. |
Замечания
Функция regQueryMultipleValues позволяет приложению запрашивать одно или несколько значений статического или динамического ключа. Если целевой ключ является статическим ключом, система предоставляет все значения атомарным образом. Чтобы предотвратить чрезмерную сериализацию, статистические данные, возвращаемые функцией, не могут превышать один мегабайт.
Если целевой ключ является динамическим ключом, поставщик должен предоставить все значения атомарным образом. Это означает, что поставщик должен заполнять буфер результатов синхронно, обеспечивая согласованное представление всех значений в буфере, избегая чрезмерной сериализации. Поставщик может предоставить не более одного мегабайта общих выходных данных во время атомарного вызова этой функции.
RegQueryMultipleValues поддерживается удаленно; То есть параметр hKey, переданный функции, может ссылаться на удаленный компьютер.
Заметка
Заголовок winreg.h определяет RegQueryMultipleValues в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winreg.h (включая Windows.h) |
библиотеки |
Advapi32.lib |
DLL | Advapi32.dll |
См. также
Обзор реестра