Of all the 64-bit Windows annoyances, Filesystem Redirection has to be near the top of the list. The System32 directory contains 64-bit stuff, the 32-bit pieces necessary for backwards compatibility live in the SysWOW64 directory. Perfectly logical, right?
If you’re a 64-bit process, this is fine.
If you’re a 32-bit process, Windows hides the 64-bit stuff from you by re-mapping the System32 directory to SysWOW64. Most of the time this is fine. Unless you happen to be a 32-bit application that needs to execute or manipulate the 64-bit stuff in System32. Then things get tricky.
There’s an API to disable WOW64 filesystem redirection, which is nice, but not terribly helpful to a .CMD or .VBS file that had the misfortune of being launched from a 32-bit process (say, from an installer such as NSIS). There are environmental variables that can clue them in to the fact that they’re running under WOW64, but since the real System32 directory isn’t accessible they’ve got no way to respawn themselves under the 64-bit CMD.EXE or CSCRIPT.EXE. Vista solves this conundrum by adding another level of filesystem redirection, mapping %windir%\Sysnative back to the real 64-bit System32, but that’s no help to a poor script trying to do right on Windows 2003.
Another fun x64 fact: The 16-bit installer is gone. No more unattended installs from DOS, you gotta boot from the CD, RIS, or use an image-based installation method.
