.netwindows-services64-bitwindows-7-x64syswow64

Why is SysWOW64 reported as System32?


I am testing a Windows service. The service code fails when it tries to delete a read only file I created in %windir%\SysWOW64, but the exception that is logged is:

Access to the path 'C:\Windows\system32\CanvasImages\62230.jpg' is denied.

I know 64 bit Windows has a whole lot of tricks up its sleeve concerning these two folders, and understand a little of it, but some accurate exception info would be nice.


Solution

  • It's a bit confusing, but SysWOW64 is actually the 32 bit emulator for 64 bit systems.

    WOW stands for "Windows on Windows", and the original SysWOW was the 16 bit emulator for 32 Bit Windows (and should have been called SysWOW32). So SysWOW64 is the 32 bit emulator for 64 bit Windows.

    So, when you run 32 bit applications, it uses SysWOW64 to emulate the 32 bit registry, and 32 bit redirection (to Program Files (x86) for instance).