Confidencial de Windows: Historial, el valor de tipo Long Way a través de

Únase a nuestro columnista confidencial de Windows para realizar un paseo por nada indirecta de todos los directorios con la palabra “ sistema ” en su nombre.

Raymond Chen

Una vez upon a time, en los días de Windows de 16 bits, había un directorio llamado C:\Windows\System. Eso fue que lo último momento eran sencillos.

Con la introducción de Win32, había un directorio del sistema de segundo agregado denominado C:\Windows\System32. Este segundo directorio contiene los archivos de sistema de 32 bits. Los archivos de sistema de 16 bits mantenido en el directorio de sistema antiguo. Bueno, excepto en Windows 95, los dos archivos de sistema de 32 y 16 bits residían en el mismo directorio, que conserva su nombre anterior de C:\Windows\System. Tendrán no hablamos de Windows 95 nuevo.

Archivos por lotes al ejecutar programas de C:\Windows\System32 con la expectativa de que el programa resultante coincidirá con el sistema operativo nativo. Estas expectativas no eran explícitas, sino se han determinado por la naturaleza de la actividad. Si el directorio System32 se rellenaron con los programas de 32 bits, a continuación, un archivo por lotes que se ejecutó el programa C:\Windows\System32\REG.EXE para afectar a una configuración de registro del sistema se ejecutaría la versión de 32 bits de REG.EXE, lo que significa que debería actualizar la versión de 32 bits simulada del registro en lugar de la versión de 64 bits reales. Otros tipos de archivos de secuencias de comandos (por ejemplo, archivos REG) tienen el mismo problema.

Hay una serie de existentes programas de 32 bits en esa ruta de acceso de codificar el System32, en lugar de llamar a la función GetSystemDirectory. Cuando estos programas se vuelven a compilar para Windows de 64 bits, aún intentarán obtener acceso al directorio System32, esperando encontrar los archivos de 64 bits (ya que ahora se compila el programa de 64 bits). Las rutas de acceso en los archivos de configuración o el registro deben tener un significado claro para los procesos de 32 bits y de 64 bits, pero debe hacer referencia al directorio correspondiente en función de los bits de “ ” del programa que se realiza en el que se le pregunta.

¿Claro como el barro?

Para salir por sí mismo en esta situación confusa, decidido el equipo de Windows para que el directorio System32 contiene los archivos de 64 bits en sistemas de 64 bits y los archivos de 32 bits en sistemas de 32 bits. El 32 es sólo parte del nombre y no significa nada. Es similar a cómo DVD es sólo un nombre y realmente no significará nada, o el número de las grandes empresas oficialmente cambiar su nombre a una secuencia de letras que es posible que han sido al mismo tiempo independientes para el formulario de algo, pero ahora sólo un nombre, como HSBC, KFC, BP y KPMG.

Redirección del sistema de archivos para los procesos de 32 bits, agrega otro nivel de complejidad para este artículo ya confusas. Cuando un proceso de 32 bits, se tiene acceso al directorio C:\Windows\System32 en un sistema de 64 bits, se redirigen sus operaciones en el directorio C:\Windows\SysWOW64, que es donde puede buscar las DLL del sistema de 32 bits.

Como resultado, se debe considerar System32 como el nombre un tanto extraño para el directorio “ del sistema de archivos DLL de los mismos bits como la aplicación que se está ejecutando ”. En un mundo ideal más, algo como esto Would have ha llamado el directorio SysExec porque contiene archivos que coincidan con el entorno de ejecución.

Pero espere, hay más

¿Qué sucede si desea tener acceso al directorio de sistema de 64 bits reales de un proceso de 32 bits? Redirección del sistema de archivos tardará al intentar obtener acceso al directorio C:\Windows\System32 y se redirija al directorio C:\Windows\SysWOW64. Mediante programación, puede utilizar las funciones con nombres difíciles de Wow64 ­ ­ Wow64 ­ FS ­ redireccionamiento de deshabilitar, pero los deshabiliten la redirección para todas las operaciones hasta que se ha vuelto a habilitar. Esto provoca problemas si se está haciendo algo más complicada que la apertura de un solo archivo. Realizar una operación compleja podría tener acceso a varios archivos o, posiblemente, crear subprocesos de trabajo.

Es el final de nuestro recorrido indirecta de los distintos directorios con el sistema en su nombre. Si resulta confuso, recuerde que el significado del directorio casi nunca coincide con su nombre.

Raymond Chen

Raymond Chen The Old New Thing, y con nombres idénticos de título de libro (Addison-Wesley, 2007) se ocupa del historial de Windows, programación de Win32 y las competencias de reparación illusory de cinta aislante negro.

Contenido relacionado