Redirector del Registro

El redirector del registro aísla las aplicaciones de 32 y 64 bits proporcionando vistas lógicas independientes de determinadas partes del registro en WOW64. El redirector del registro intercepta las llamadas de registro de 32 y 64 bits a sus respectivas vistas del Registro lógico y las asigna a la ubicación del Registro físico correspondiente. El proceso de redireccionamiento es transparente para la aplicación. Por lo tanto, una aplicación de 32 bits puede acceder a los datos del Registro como si estuviera ejecutándose en Windows de 32 bits, incluso si los datos se almacenan en una ubicación diferente en Windows de 64 bits.

Windows 10 en ARM: además de la vista lógica de 32 bits para aplicaciones x86, Windows 10 en ARM incluye una vista lógica independiente para aplicaciones arm de 32 bits.

Se comparten un subconjunto de claves en las rutas de acceso del Registro redirigidas. No se redirigen las llamadas del Registro de 32 bits a claves compartidas. En su lugar, se asigna una copia física de la clave a cada vista lógica del Registro. Para obtener una lista de las claves redirigidas y las claves compartidas, consulte Claves del Registro afectadas por WOW64.

Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Para habilitar la interoperabilidad de aplicaciones a través de COM y otros mecanismos, también se refleja un subconjunto de claves del Registro redirigidas. El proceso de reflexión del Registro copia las claves del Registro y los valores entre dos vistas del Registro para mantenerlos sincronizados. La reflexión del Registro se quitó a partir de Windows 7 y Windows Server 2008 R2. Para obtener más información, consulte Reflexión del Registro.

En el escenario siguiente se muestra el uso de estas vistas lógicas:

  • Una aplicación x86 de 32 bits comprueba la existencia de la siguiente clave del Registro: HKEY_LOCAL_MACHINE\Software\Hello. Si la clave no existe, la aplicación la crea con un valor predeterminado de "Hola mundo x86 de 32 bits"; de lo contrario, lee y muestra el valor.
  • La misma aplicación se modifica para escribir "Hola mundo de 64 bits" en lugar de "Hola mundo de 32 bits x86" y se vuelve a compilar como una aplicación x64 o ARM64 de 64 bits.
  • Windows 10 en ARM: la misma aplicación se modifica para escribir "Hola mundo arm de 32 bits" y se vuelve a compilar como una aplicación ARM de 32 bits.
  • Cuando la aplicación x86 de 32 bits se ejecuta en Windows de 64 bits, muestra "Hola mundo x86 de 32 bits". Cuando se ejecuta la aplicación de 64 bits, muestra "Hola mundo de 64 bits". Windows 10 en ARM: cuando la aplicación ARM de 32 bits se ejecuta en Windows ARM64 de 64 bits, muestra "Hola mundo arm de 32 bits". Todas las aplicaciones llaman a las mismas funciones del Registro con el mismo identificador predefinido y el mismo nombre de clave; la diferencia es que cada aplicación funciona en su vista lógica del Registro, y cada vista se asigna a una ubicación física independiente del registro, que mantiene intactas todas las versiones de la cadena.

Las claves redirigidas se asignan a ubicaciones físicas en Wow6432Node. Por ejemplo, HKEY_LOCAL_MACHINE\Software se redirige a HKEY_LOCAL_MACHINE\Software\Wow6432Node. Sin embargo, el sistema debe considerar la ubicación física de las claves redirigidas. Las aplicaciones no deben acceder directamente a la ubicación física de una clave, ya que esta ubicación puede cambiar. Para obtener más información, consulte Acceso a una vista del Registro alternativa.

Windows 10 en ARM: las claves ARM redirigidas de 32 bits se asignan a ubicaciones físicas en WowAA32Node.

Para ayudar a las aplicaciones de 32 bits que escriben REG_SZ o REG_EXPAND_SZ datos que contienen %ProgramFiles% o %commonprogramfiles% en el registro, WOW64 intercepta estas operaciones de escritura y las reemplaza por "%ProgramFiles(x86)%" y "%commonprogramfiles(x86)%". Por ejemplo, si el directorio Archivos de programa está en la unidad C, "%ProgramFiles(x86)%" se expande a "C:\Archivos de programa (x86)". El reemplazo solo se produce si se cumplen las condiciones siguientes:

  • La cadena debe comenzar por %ProgramFiles% o %commonprogramfiles%. Si la cadena comienza con un espacio o cualquier carácter distinto de %, no se reemplaza.
  • El caso de %ProgramFiles% o %commonprogramfiles% debe ser exactamente como se muestra porque la comparación de cadenas distingue mayúsculas de minúsculas. Por ejemplo, si la cadena comienza por %CommonProgramFiles% en lugar de %commonprogramfiles%, no se reemplaza.
  • La cadena no puede superar MAX_PATH*2+15 caracteres. Si supera esta longitud, no se reemplaza.
  • No se puede abrir la clave con KEY_WOW64_64KEY. Esta marca especifica que las operaciones de la clave se deben realizar en la vista del Registro de 64 bits, por lo que no se reemplaza. Para obtener más información, consulte Acceso a una vista del Registro alternativa.

Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: La marca KEY_WOW_64_64KEY no afecta a si se reemplaza una clave. Esta marca afecta al reemplazo a partir de Windows 7 y Windows Server 2008 R2.

Además, las claves de REG_SZ o REG_EXPAND_SZ que contienen system32 se reemplazan por syswow64. La cadena debe comenzar con la ruta de acceso que apunta a o bajo %windir%\system32. La comparación de cadenas no distingue mayúsculas de minúsculas. Las variables de entorno se expanden antes de que coincidan con la ruta de acceso, por lo que todas las rutas de acceso siguientes se reemplazan: %windir%\system32, %SystemRoot%\system32 y C:\windows\system32. Esta revisión solo se aplica a las claves que se reflejaron antes de Windows 7.

Para obtener más información, vea los temas siguientes: