Função RegConnectRegistryA (winreg.h)
Estabelece uma conexão com uma chave do Registro predefinida em outro computador.
Sintaxe
LSTATUS RegConnectRegistryA(
[in, optional] LPCSTR lpMachineName,
[in] HKEY hKey,
[out] PHKEY phkResult
);
Parâmetros
[in, optional] lpMachineName
O nome do computador remoto. A cadeia de caracteres tem o seguinte formato:
\\Computername
O chamador deve ter acesso ao computador remoto ou a função falha.
Se esse parâmetro for NULL, o nome do computador local será usado.
[in] hKey
Um identificador de registro predefinido. Esse parâmetro pode ser uma das chaves predefinidas a seguir no computador remoto.
HKEY_USERSHKEY_LOCAL_MACHINE HKEY_PERFORMANCE_DATA
[out] phkResult
Um ponteiro para uma variável que recebe um identificador de chave que identifica o identificador predefinido no computador remoto.
Retornar valor
Se a função obtiver êxito, o valor retornado será ERROR_SUCCESS.
Se a função falhar, o valor de retorno será o código de erro diferente de zero definido em Winerror.h. Você pode usar a função FormatMessage com o sinalizador FORMAT_MESSAGE_FROM_SYSTEM para obter uma descrição genérica do erro.
Comentários
RegConnectRegistry requer que o serviço registro remoto esteja em execução no computador remoto. Por padrão, esse serviço é configurado para ser iniciado manualmente. Para configurar o serviço registro remoto para iniciar automaticamente, execute Services.msc e altere o Tipo de Inicialização do serviço para Automático.
Windows Server 2003 e Windows XP/2000: O serviço registro remoto é configurado para iniciar automaticamente por padrão.
Quando um identificador retornado por RegConnectRegistry não é mais necessário, ele deve ser fechado chamando RegCloseKey.
Se o computador estiver ingressado em um grupo de trabalho e a política "Forçar logons de rede usando contas locais para autenticar como Convidado" estiver habilitada, a função falhará. Observe que essa política será habilitada por padrão se o computador estiver ingressado em um grupo de trabalho.
Se o usuário atual não tiver acesso adequado ao computador remoto, a chamada para RegConnectRegistry falhará. Para se conectar a um registro remoto, chame LogonUser com LOGON32_LOGON_NEW_CREDENTIALS e ImpersonateLoggedOnUser antes de chamar RegConnectRegistry.
Windows 2000: Uma solução alternativa possível é estabelecer uma sessão para um compartilhamento administrativo, como IPC$, usando um conjunto diferente de credenciais. Para especificar credenciais diferentes das do usuário atual, use a função WNetAddConnection2 para se conectar ao compartilhamento. Quando terminar de acessar o registro, cancele a conexão.
Windows XP Home Edition: Você não pode usar essa função para se conectar a um computador remoto que executa o Windows XP Home Edition. Essa função funciona com o nome do computador local, mesmo que esteja executando o Windows XP Home Edition porque isso ignora a camada de autenticação.
Observação
O cabeçalho winreg.h define RegConnectRegistry como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winreg.h (inclua Windows.h) |
Biblioteca | Advapi32.lib |
DLL | Advapi32.dll |