Funzione RegConnectRegistryA (winreg.h)
Stabilisce una connessione a una chiave del Registro di sistema predefinita in un altro computer.
Sintassi
LSTATUS RegConnectRegistryA(
[in, optional] LPCSTR lpMachineName,
[in] HKEY hKey,
[out] PHKEY phkResult
);
Parametri
[in, optional] lpMachineName
Nome del computer remoto. La stringa ha il formato seguente:
\\Nomecomputer
Il chiamante deve avere accesso al computer remoto o la funzione ha esito negativo.
Se questo parametro è NULL, viene utilizzato il nome del computer locale.
[in] hKey
Handle predefinito del Registro di sistema. Questo parametro può essere una delle chiavi predefinite seguenti nel computer remoto.
HKEY_USERS HKEY_PERFORMANCE_DATA HKEY_LOCAL_MACHINE
[out] phkResult
Puntatore a una variabile che riceve un handle di chiave che identifica l'handle predefinito nel computer remoto.
Valore restituito
Se la funzione ha esito positivo, il valore restituito viene ERROR_SUCCESS.
Se la funzione ha esito negativo, il valore restituito è un codice di errore diverso da zero definito in Winerror.h. È possibile usare la funzione FormatMessage con il flag FORMAT_MESSAGE_FROM_SYSTEM per ottenere una descrizione generica dell'errore.
Commenti
RegConnectRegistry richiede che il servizio Registro di sistema remoto sia in esecuzione nel computer remoto. Per impostazione predefinita, questo servizio è configurato per l'avvio manuale. Per configurare il servizio Registro di sistema remoto per l'avvio automatico, eseguire Services.msc e impostare Il tipo di avvio del servizio su Automatico.
Windows Server 2003 e Windows XP/2000: Il servizio Registro di sistema remoto è configurato per l'avvio automatico per impostazione predefinita.
Quando un handle restituito da RegConnectRegistry non è più necessario, deve essere chiuso chiamando RegCloseKey.
Se il computer viene aggiunto a un gruppo di lavoro e viene abilitato il criterio "Forzare gli accessi di rete usando account locali per l'autenticazione come guest", la funzione ha esito negativo. Si noti che questo criterio è abilitato per impostazione predefinita se il computer viene aggiunto a un gruppo di lavoro.
Se l'utente corrente non ha accesso appropriato al computer remoto, la chiamata a RegConnectRegistry ha esito negativo. Per connettersi a un registro remoto, chiamare LogonUser con LOGON32_LOGON_NEW_CREDENTIALS e ImpersonateLoggedOnUser prima di chiamare RegConnectRegistry.
Windows 2000: Una possibile soluzione alternativa consiste nel stabilire una sessione a una condivisione amministrativa, ad esempio IPC$, usando un set di credenziali diverso. Per specificare credenziali diverse da quelle dell'utente corrente, usare la funzione WNetAddConnection2 per connettersi alla condivisione. Al termine dell'accesso al Registro di sistema, annullare la connessione.
Windows XP Home Edition: Non è possibile utilizzare questa funzione per connettersi a un computer remoto che esegue Windows XP Home Edition. Questa funzione funziona con il nome del computer locale anche se esegue Windows XP Home Edition perché questo ignora il livello di autenticazione.
Nota
L'intestazione winreg.h definisce RegConnectRegistry come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winreg.h (include Windows.h) |
Libreria | Advapi32.lib |
DLL | Advapi32.dll |