On 64-bit versions of Windows, you have got 2 separate Program Files folders. however it doesn’t finish there. you furthermore mght have 2 separate system directories wherever DLL libraries and executables ar stored: System32 and SysWOW64. Despite the names, System32 is filled with 64-bit files and SysWOW64 is filled with 32-bit files. thus what gives?

What Is System32?


The System32 directory contains Windows system files, both .DLL library files employed by programs and .EXE program utilities that ar a vicinity of Windows. whereas most of the files you discover in here ar a part of the Windows software package, third-party code programs typically install their own DLL files to the current folder yet.

Applications running on your system is also put in in your Program Files folder or elsewhere, however they usually load system-wide libraries from the System32 folder.

Separating 32-bit and 64-bit Libraries




On a 64-bit version of Windows, you have got a C:\Program Files folder containing 64-bit programs and their files, and a C:\Program Files (x86) folder containing 32-bit programs and their files. It’s useful for these files to be separated as a result of 64-bit programs would like 64-bit DLL files, and 32-bit programs would like 32-bit DLL files.

If a 32-bit program goes to load a DLL file it wants, finds a 64-bit version, and tries to load it, it'll crash. By separating 64-bit and 32-bit code into 2 totally different Program Files folders, Windows ensures that they won’t get required and caused issues.

However, not all DLL files ar keep in Program Files. several system-wide libraries enclosed with Windows ar keep in C:\System32, and a few programs additionally dump their own library files here. So, even as Windows has separate 32-bit and 64-bit Program Files folders, it additionally has separate 32-bit and 64-bit versions of the System32 folder.

System32 and SysWOW64

On a 32-bit laptop, all 32-bit programs store their files in C:\Program Files, and therefore the system-wide library location is C:\System32.

On a 64-bit laptop, 64-bit programs store their files in C:\Program Files, and therefore the system-wide C:\Windows\System32 folder contains 64-bit libraries. 32-bit programs store their files in C:\Program Files (x86), and therefore the system-wide folder is C:\Windows\SysWOW64.

This is undoubtedly unreasonable. Despite the “32” within the name, the System32 folder contains 64-bit libraries. And, despite the sixty four within the name, the SysWOW64 folder contains 32-bit libraries—at least on 64-bit versions of Windows.

In general, you won’t ought to grasp this. The Windows software package and programs you employ mechanically place their files within the correct location and use the right folder. However, if you ever ought to manually install a DLL get in the right location or realize wherever one is installed—which is extremely rare—you’ll ought to grasp that is that.

WOW64, Explained




The “WOW64” a part of the name here refers to Microsoft’s “Windows 32-bit on Windows 64-bit” code, that could be a a part of the software package. this permits Windows to run 32-bit programs on a 64-bit version of Windows. WoW64 redirects file access to confirm programs can work properly.

For example, if you put in a 32-bit program on a 64-bit version of Windows and it tries to write down to the C:\Program Files folder, WoW64 points it at C:\Program Files (x86). And, if it needs to access the C:\Windows\System32 folder, WoW64 points it at C:\Windows\SysWOW64. Windows will this employing a filing system redirector.

This all happens mechanically and transparently within the background. The program doesn’t even need to grasp it’s running on a 64-bit software package, that permits older 32-bit programs to run while not modification on 64-bit versions of Windows. WOW64 additionally redirects register access, making certain there ar separate areas of the register for 64-bit and 32-bit programs.

So Why Is System32 64-bit, and SysWOW64 32-bit?

All that brings USA back to the million-dollar question: Why is that the “System32” folder 64-bit, and SysWOW64 32-bit?

The answer looks to be that a lot of 32-bit applications were hardcoded to use the C:\Windows\System32 directory. once developers recompiled these applications for 64-bit versions of Windows, they continued  to use the C:\Windows\System32 directory.

Rather than renaming the directory and forcing developers to maneuver to the new one, breaking several applications within the method, Microsoft left “System32” because the customary system library directory. They created a brand new library directory for applications running below the WoW64 layer, that they named “SysWOW64”. after you have faith in it this fashion, the name makes a lot of sense.

Yes, it's a touch silly that a directory with “32” within the name is currently 64-bit. maybe Microsoft ought to have seen that returning after they named it C:\Windows\System32 within the 90’s. But, though a a lot of simple naming theme would be nice, it’s not value breaking a bunch of programs and making a lot of work for developers simply to urge there. which means we’re curst System32 and SysWOW64 for the predictable future.