Partager via


Redirecteur du Registre

Le redirecteur de Registre isole les applications 32 bits et 64 bits en fournissant des vues logiques distinctes de certaines parties du Registre sur WOW64. Le redirecteur de Registre intercepte les appels de Registre 32 bits et 64 bits à leurs vues de Registre logiques respectives et les mappe à l’emplacement de Registre physique correspondant. Le processus de redirection est transparent pour l’application. Par conséquent, une application 32 bits peut accéder aux données de Registre comme s’il s’exécutait sur Windows 32 bits, même si les données sont stockées dans un autre emplacement sur Windows 64 bits.

Windows 10 sur ARM : En plus de la vue logique 32 bits pour les applications x86, Windows 10 sur ARM inclut une vue logique distincte pour les applications ARM 32 bits.

Un sous-ensemble de clés sous chemins de Registre redirigés est partagé. Les appels de Registre 32 bits aux clés partagées ne sont pas redirigés. Au lieu de cela, une copie physique de la clé est mappée dans chaque vue logique du Registre. Pour obtenir la liste des clés redirigées et des clés partagées, consultez Clés de Registre affectées par WOW64.

Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Pour activer l’interopérabilité des applications via COM et d’autres mécanismes, un sous-ensemble de clés de Registre redirigées est également reflétée. Le processus de réflexion du Registre copie les clés de Registre et les valeurs entre deux vues de Registre pour les synchroniser. La réflexion du Registre a été supprimée à partir de Windows 7 et Windows Server 2008 R2. Pour plus d’informations, consultez de réflexion du Registre.

Le scénario suivant illustre l’utilisation de ces vues logiques :

  • Une application x86 32 bits vérifie l’existence de la clé de Registre suivante : HKEY_LOCAL_MACHINE\Software\Hello. Si la clé n’existe pas, l’application la crée avec une valeur par défaut « Hello 32 bits x86 world » ; sinon, il lit et affiche la valeur.
  • La même application est modifiée pour écrire « Hello 64 bits world » au lieu de « Hello 32 bits x86 world » et recompilée en tant qu’application x64 ou ARM64 64 bits.
  • Windows 10 sur ARM : La même application est modifiée pour écrire « Hello 32 bits ARM world » et recompilée en tant qu’application ARM 32 bits.
  • Lorsque l’application x86 32 bits est exécutée sur Windows 64 bits, elle affiche « Hello 32 bits x86 world ». Lorsque l’application 64 bits est exécutée, elle affiche « Hello 64 bits world ». Windows 10 sur ARM : Lorsque l’application ARM 32 bits est exécutée sur Windows ARM 64 bits, elle affiche « Hello 32 bits ARM world ». Toutes les applications appellent les mêmes fonctions de Registre avec le même handle prédéfini et le même nom de clé ; la différence est que chaque application fonctionne sur sa vue logique du Registre, et chaque vue est mappée à un emplacement physique distinct du Registre, qui conserve toutes les versions de la chaîne intactes.

Les clés redirigées sont mappées à des emplacements physiques sous Wow6432Node. Par exemple, HKEY_LOCAL_MACHINE\Software est redirigé vers HKEY_LOCAL_MACHINE\Software\Wow6432Node. Toutefois, l’emplacement physique des clés redirigées doit être considéré comme réservé par le système. Les applications ne doivent pas accéder directement à l’emplacement physique d’une clé, car cet emplacement peut changer. Pour plus d’informations, consultez Accès à une autre vue de Registre.

Windows 10 sur ARM : clés ARM redirigées 32 bits sont mappées aux emplacements physiques sous WowAA32Node.

Pour aider les applications 32 bits qui écrivent des données REG_SZ ou REG_EXPAND_SZ contenant des %ProgramFiles% ou des %commonprogramfiles% dans le Registre, WOW64 intercepte ces opérations d’écriture et les remplace par «%ProgramFiles(x86)%» et «%commonprogramfiles(x86)%». Par exemple, si le répertoire Program Files se trouve sur le lecteur C, «%ProgramFiles(x86)%» se développe sur « C :\Program Files (x86) ». Le remplacement se produit uniquement si les conditions suivantes sont remplies :

  • La chaîne doit commencer par %ProgramFiles% ou %commonprogramfiles%. Si la chaîne commence par un espace ou un caractère autre que %, elle n’est pas remplacée.
  • Le cas de %ProgramFiles% ou de %commonprogramfiles% doit être exactement comme indiqué, car la comparaison de chaînes respecte la casse. Par exemple, si la chaîne commence par %CommonProgramFiles% au lieu de %commonprogramfiles%, elle n’est pas remplacée.
  • La chaîne ne peut pas dépasser MAX_PATH*2+15 caractères. S’il dépasse cette longueur, il n’est pas remplacé.
  • Impossible d’ouvrir la clé avec KEY_WOW64_64KEY. Cet indicateur spécifie que les opérations sur la clé doivent être effectuées sur la vue de Registre 64 bits, de sorte qu’elles ne sont pas remplacées. Pour plus d’informations, consultez Accès à une autre vue de Registre.

Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : l’indicateur KEY_WOW_64_64KEY n’affecte pas si une clé est remplacée. Cet indicateur affecte le remplacement à partir de Windows 7 et Windows Server 2008 R2.

En outre, REG_SZ ou REG_EXPAND_SZ clés contenant system32 sont remplacées par syswow64. La chaîne doit commencer par le chemin d’accès pointant vers ou sous %windir%\system32. La comparaison de chaînes n’est pas sensible à la casse. Les variables d’environnement sont développées avant de correspondre au chemin, de sorte que tous les chemins suivants sont remplacés : %windir%\system32, %SystemRoot%\system32 et C :\windows\system32. Ce correctif est appliqué uniquement aux clés qui ont été reflétées avant Windows 7.

Pour plus d’informations, consultez les rubriques suivantes :