Compartir a través de


Eliminación de la reflexión del Registro de Windows

Plataforma

Clientes: Windows 7
Servidores: Windows Server 2008 R2

Impacto en las características

Gravedad: baja
Frecuencia: baja

Descripción

El proceso de reflexión del registro copia claves y valores del registro entre dos vistas del registro para mantenerlas sincronizadas. En instalaciones anteriores de Windows de 64 bits, el proceso reflejaba un subconjunto de las claves del registro redirigidas entre las vistas de 32 bits y 64 bits. Sin embargo, la implementación de eso provocó algunas incoherencias en el estado del registro. Para obtener más información sobre la reflexión del registro, consulte Reflexión del registro.

A partir de Windows 7, hemos eliminado completamente la reflexión del registro y hemos fusionado las claves que solían reflejarse:

  • HKEY_LOCAL_MACHINE\ Software\ Classes
  • HKEY_LOCAL_MACHINE\Software\Microsoft\COM3
  • HKEY_LOCAL_MACHINE\Software\Microsoft\EventSystem
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Ole
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc
  • HKEY_USERS\*\Software\Classes
  • HKEY_USERS\*_Classes

De hecho, esto proporciona el mismo comportamiento de reflexión, ya que los cambios en estas claves están disponibles inmediatamente para las aplicaciones de 32 y 64 bits.

Las claves que se reflejaban condicionalmente permanecen divididas:

  • HKEY_LOCAL_MACHINE\Software\Classes\CLSID
  • HKEY_LOCAL_MACHINE\Software\Classes\Interface
  • HKEY_USERS\*\Software\Classes\CLSID
  • HKEY_USERS\*\Software\Classes\Interface
  • HKEY_USERS\*_Classes\CLSID
  • HKEY_USERS\*_Classes\Interface

Se usan para mantener los datos que no se deben compartir entre aplicaciones de 32 y 64 bits.

Manifiesto

Las claves CLSID e Interface de la lista anterior ya no se reflejan mientras sigan redirigidas. Aunque este es el comportamiento deseado en la mayoría de los casos, es posible que las aplicaciones puedan depender de su comportamiento reflejado en Vista.

Las funciones que permiten a las aplicaciones controlar la reflexión (RegDisableReflectionKey y RegEnableReflectionKey) no funcionan en Windows 7.

Mitigación del impacto

COM es el principal consumidor de reflexión del registro. COM y otros consumidores se han actualizado para dar cabida a este cambio. Este cambio no afecta a las aplicaciones que usan las API COM estándar.

Solución

Aplique una de las siguientes opciones si confía en la reflexión del registro para sincronizar las vistas de 32 bits y 64 bits:

  • Cree claves en ambas vistas explícitamente durante la instalación

  • Mueva las claves fuera del ámbito de las claves reflejadas

  • Compruebe ambas vistas del registro al consultar una clave reflejada

    Nota: No se pueden combinar los indicadores KEY_WOW64_32KEY y KEY_WOW64_64KEY

Aplique una de las siguientes opciones si confía en las funciones RegDisableReflectionKey para deshabilitar la reflexión del registro:

  • Cree claves en ambas vistas explícitamente durante la instalación
  • Mueva las claves fuera del ámbito de las claves reflejadas
  • Use subclaves específicas de la plataforma (como x86, amd64 e ia64) para separar los datos específicos de cada bit

Nota:

Es posible que estos recursos no estén disponibles en algunos idiomas/regiones.