
Entonces, uno de nuestros clientes utiliza nuestro software en versiones heredadas de Windows porque se encuentran en un entorno industrial, aislado y tienen Windows XP y un montón de servidores antiguos que son lo único que les funciona. Algunos de ellos son de 64 bits.
Al leer el registro, observo que en algunos casos nuestra aplicación de 32 bits puede leer directamente la siguiente entrada en una ventana de 64 bits, lo que en teoría no debería ser posible:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer
y extraiga el número de versión del valor de cadena "Versión".
Sin embargo, si creamos una clave en esa misma PC
HKEY_LOCAL_MACHINE\SOFTWARE\Our Software
y agregamos un valor de cadena como "Último servicio", no se puede leer.
Los permisos y la propiedad son los mismos que los de la entrada de IE cuando intentamos agregarla allí sin éxito.
Ir con \\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Our Software\Last Service Date
las obras, por supuesto, pero ¿por qué si algunas otras cosas pueden ir en la parte "normal" del registro y ser legibles, otras no? Sería más fácil y limpio extraer datos de la aplicación para leer la fecha del servicio, y sería crítico si se agrega incorrectamente al estándar HKEY_LOCAL_MACHINE por descuido.
¿Me estoy perdiendo de algo?
Respuesta1
Te has encontrado con el Redirector de registro:
El redirector del registro aísla las aplicaciones de 32 y 64 bits proporcionando vistas lógicas separadas de ciertas partes del registro en WOW64. El redirector de registro intercepta llamadas de registro de 32 y 64 bits a sus respectivas vistas de registro lógicas y las asigna a la ubicación de registro física correspondiente. El proceso de redirección es transparente para la aplicación. Por lo tanto, una aplicación de 32 bits puede acceder a los datos del registro como si se estuviera ejecutando en Windows de 32 bits, incluso si los datos están almacenados en una ubicación diferente en Windows de 64 bits.
Algunas claves de registro de aplicaciones, como las que HKEY_LOCAL_MACHINE\Software
siempre se redirigen. La mayoría de las colmenas del registro no se redirigen.
Un programa de 32/64 bits aún puede forzar el acceso a la versión de 64/32 bits del registro al incluir indicadores especiales en la solicitud, como se describe en el artículo. Acceder a una vista de registro alternativa. Ver también Ejemplo de redirección de registro en WOW64.