Share via


Fonction RegConnectRegistryA (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 :

\\Computername

L’appelant doit avoir accès à l’ordinateur distant ou la fonction échoue.

Si ce paramètre a la valeur NULL, le nom de l’ordinateur local est utilisé.

[in] hKey

Un 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_USERSHKEY_PERFORMANCE_DATA HKEY_LOCAL_MACHINE

[out] phkResult

Pointeur vers une variable qui reçoit un handle de clé identifiant le handle prédéfini sur l’ordinateur distant.

Valeur retournée

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 avec l’indicateur FORMAT_MESSAGE_FROM_SYSTEM pour obtenir une description générique de l’erreur.

Remarques

RegConnectRegistry nécessite que le service Registre à distance 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 qu’il démarre 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 à distance 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 ouvertures de session réseau à l’aide de comptes locaux à 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 Édition Familiale : Vous ne pouvez pas utiliser cette fonction pour vous connecter à un ordinateur distant exécutant Windows XP Édition familiale. Cette fonction fonctionne avec le nom de l’ordinateur local même s’il exécute Windows XP Édition familiale, car cela contourne la couche d’authentification.

Notes

L’en-tête winreg.h définit RegConnectRegistry comme un 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.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winreg.h (inclure Windows.h)
Bibliothèque Advapi32.lib
DLL Advapi32.dll

Voir aussi

RegCloseKey

Fonctions du Registre

Vue d’ensemble du Registre