RegConnectRegistryA, fonction (winreg.h)
Établit une connexion à une clé de Registre prédéfinie sur un autre ordinateur.
Syntaxe
LSTATUS RegConnectRegistryA(
[in, optional] LPCSTR lpMachineName,
[in] HKEY hKey,
[out] PHKEY phkResult
);
Paramètres
[in, optional] lpMachineName
Nom de l’ordinateur distant. La chaîne a la forme suivante :
\\ nom_ordinateur
L’appelant doit avoir accès à l’ordinateur distant ou la fonction échoue.
Si ce paramètre est NULL, le nom de l’ordinateur local est utilisé.
[in] hKey
Handle de Registre prédéfini. Ce paramètre peut être l’une des clés prédéfinies suivantes sur l’ordinateur distant.
HKEY_LOCAL_MACHINEHKEY_PERFORMANCE_DATAHKEY_USERS
[out] phkResult
Pointeur vers une variable qui reçoit un handle de clé identifiant le handle prédéfini sur l’ordinateur distant.
Valeur de retour
Si la fonction réussit, la valeur de retour est ERROR_SUCCESS.
Si la fonction échoue, la valeur de retour est un code d’erreur différent de zéro défini dans Winerror.h. Vous pouvez utiliser la fonction FormatMessage
Remarques
regConnectRegistry nécessite que le service Registre distant s’exécute sur l’ordinateur distant. Par défaut, ce service est configuré pour être démarré manuellement. Pour configurer le service Registre à distance pour démarrer automatiquement, exécutez Services.msc et remplacez le type de démarrage du service par Automatique.
Windows Server 2003 et Windows XP/2000 : le service Registre distant est configuré pour démarrer automatiquement par défaut.
Lorsqu’un handle retourné par RegConnectRegistry n’est plus nécessaire, il doit être fermé en appelant RegCloseKey.
Si l’ordinateur est joint à un groupe de travail et que la stratégie « Forcer les connexions réseau à l’aide de comptes locaux pour s’authentifier en tant qu’invité » est activée, la fonction échoue. Notez que cette stratégie est activée par défaut si l’ordinateur est joint à un groupe de travail.
Si l’utilisateur actuel ne dispose pas d’un accès approprié à l’ordinateur distant, l’appel à RegConnectRegistry échoue. Pour vous connecter à un registre distant, appelez logonUser avec LOGON32_LOGON_NEW_CREDENTIALS et impersonateLoggedOnUser avant d’appeler regConnectRegistry.
Windows 2000 : Une solution de contournement possible consiste à établir une session sur un partage administratif tel que IPC$ à l’aide d’un autre ensemble d’informations d’identification. Pour spécifier des informations d’identification autres que celles de l’utilisateur actuel, utilisez la fonction WNetAddConnection2 pour vous connecter au partage. Une fois que vous avez terminé d’accéder au Registre, annulez la connexion.
Windows XP Home Edition : Vous ne pouvez pas utiliser cette fonction pour vous connecter à un ordinateur distant exécutant Windows XP Home Edition. Cette fonction fonctionne avec le nom de l’ordinateur local même s’il exécute Windows XP Home Edition, car cela contourne la couche d’authentification.
Note
L’en-tête winreg.h définit RegConnectRegistry comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
serveur minimum pris en charge | Windows 2000 Server [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | winreg.h (inclure Windows.h) |
bibliothèque | Advapi32.lib |
DLL | Advapi32.dll |