Функция RegConnectRegistryA (winreg.h)
Устанавливает подключение к предопределенному разделу реестра на другом компьютере.
Синтаксис
LSTATUS RegConnectRegistryA(
[in, optional] LPCSTR lpMachineName,
[in] HKEY hKey,
[out] PHKEY phkResult
);
Параметры
[in, optional] lpMachineName
Имя удаленного компьютера. Строка имеет следующую форму:
\\ имя компьютера
Вызывающий объект должен иметь доступ к удаленному компьютеру или сбой функции.
Если этот параметр значение NULL, используется имя локального компьютера.
[in] hKey
Предопределенный дескриптор реестра. Этот параметр может быть одним из следующих предварительно определенных ключей на удаленном компьютере.
HKEY_LOCAL_MACHINEHKEY_PERFORMANCE_DATAHKEY_USERS
[out] phkResult
Указатель на переменную, которая получает дескриптор ключа, определяющий предопределенный дескриптор на удаленном компьютере.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение ERROR_SUCCESS.
Если функция завершается ошибкой, возвращаемое значение представляет собой ненулевой код ошибки, определенный в Winerror.h. Функцию FormatMessage можно использовать с флагом FORMAT_MESSAGE_FROM_SYSTEM для получения универсального описания ошибки.
Замечания
RegConnectRegistry требует, чтобы служба удаленного реестра выполнялось на удаленном компьютере. По умолчанию эта служба настроена для запуска вручную. Чтобы настроить службу удаленного реестра для автоматического запуска, запустите Services.msc и измените тип запуска службы на "Автоматически".
Windows Server 2003 и Windows XP/2000: служба удаленного реестра настроена для автоматического запуска по умолчанию.
Если дескриптор, возвращаемый RegConnectRegistry больше не нужен, он должен быть закрыт путем вызова RegCloseKey.
Если компьютер присоединен к рабочей группе и включена политика принудительного входа в сеть с использованием локальных учетных записей для проверки подлинности в качестве гостя, функция завершается ошибкой. Обратите внимание, что эта политика включена по умолчанию, если компьютер присоединен к рабочей группе.
Если текущий пользователь не имеет правильного доступа к удаленному компьютеру, вызов RegConnectRegistry завершается ошибкой. Чтобы подключиться к удаленному реестру, вызовите LogonUser с LOGON32_LOGON_NEW_CREDENTIALS и ImpersonateLoggedOnUser перед вызовом RegConnectRegistry.
Windows 2000: Одно возможное решение заключается в создании сеанса для административной общей папки, например IPC$ с помощью другого набора учетных данных. Чтобы указать учетные данные, отличные от учетных данных текущего пользователя, используйте функцию WNetAddConnection2 для подключения к общей папке. Завершив доступ к реестру, отмените подключение.
Windows XP Home Edition: эту функцию нельзя использовать для подключения к удаленному компьютеру под управлением Windows XP Home Edition. Эта функция работает с именем локального компьютера, даже если она работает под управлением Windows XP Home Edition, так как это проходит уровень проверки подлинности.
Заметка
Заголовок winreg.h определяет RegConnectRegistry как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winreg.h (включая Windows.h) |
библиотеки |
Advapi32.lib |
DLL | Advapi32.dll |
См. также
Обзор реестра