If you have been using Windows OS for some time, you must have seen this System32 folder. However, If you are on a 64-bit PC, you must have noticed that there are two folders in your C:\Windows directory. The first is System32, and the second is SysWOW64. In this post, we will learn about them and the difference between System32 and SysWOW64 folders in Windows 11/10.
What is the System32 folder?
The System32 folder contains all the system files. These are usually DLL or library files, which are the most common programs used by applications to access Windows features. Programs that install on your computer can also store files inside it.
When you install a program, two things happen on a broader level. The main program (EXE) is installed in the Programs folder, while its DLL (which packs in its functions, etc.) is stored in System32 folders. This is standard practice.
What is the SysWOW64 folder?
Have you noticed a C:\Program Files (x86) folder on your 64-bit PC? Here x86 means 32-bit. So to install 32-bit programs on a 64-bit machine, C:\Program Files (x86) is used. While C:\Program Files folder contains 64-bit programs and their files.
You may be drawing an analogy that the SysWOW64 folder must contain only 64-bit DLLs. That was the actual intention, but it did not work out. If you manually check, there are a lot of 64-bit DLLs in the System 32 folder and 32-bit DLLs in the SysWOW64 folder.
So why does a 32-bit marked folder have a 64-bit folder, and why is a 64-bit marked folder housing all 32-bit DLLs?
Read: What is splwow64.exe process?
Difference between System32 and SysWOW64 folders
Both are system folders, and they contain system-wide DLLs or files. However, they don’t adhere to their name, thanks to hard-coded programming.
On a 64-bit computer, 64-bit programs store-
- Primary files like EXE in C:\Program Files.
- System-wide files like DLL etc. in C:\Windows\System32 folder contains 64-bit libraries.
However, the 32-bit programs store-
- Primary files in C:\Program Files (x86)
- System-wide folder is C:\Windows\SysWOW64.
When a 32-bit program wants to install their 32-bit DLL files into C:\Windows\System32, it will be redirected to C:\Windows\SysWOW64. This essentially makes System32 hold only 64-bit libraries. Microsoft could not remove it because it would have broken many programs.
What happened is that most of the developers who rolled out their 32-bit applications on a 64-bit system were still using C:\Windows\System32. This was hard-coded into their program. Since Microsoft did not want to break programs, they devised this redirection.
This ensures that everything happens in the background without developers needing to do much work. Whenever a 32-bit program requests something from the System32 folder, it is silently redirected to the SysWOW64 folder, which holds all the 32-bit DLLs. No redirection is needed for 64-bit programs, as they have the default folders in place.
In short, Windows x64 has a System32 folder that contains 64-bit DLLs and a second SysWOW64 folder that contains 32-bit DLLs. Native 64-bit processes find their DLLs where they expect them to be, viz., in the System32 folder. For 32-bit processes, the OS redirects requests and shows them to the SysWOW64 folder.
The same was done for Windows Registry – 32-bit and 64-bit programs are separated.
Related: System32 folder opens automatically at startup.
The WOW in SysWOW64
Instead of naming it System64, Microsoft named this folder SysWOW64. WOW stands for Windows (32-bit) on Windows (64-bit). 32-bit applications could run on 64-bit applications, and that’s how it got its name.
Microsoft did not see it coming; otherwise, the System32 folder would not have had its name. It could have been somewhat more straightforward. However, it was an excellent decision not to rename the folder and instead use a redirection. It ensured consumers and developers did not lose their apps when they moved to 64-bit.
While 32-bit systems are slowly being phased out and replaced with 64-bit computers, it will take some time. Microsoft might do something about it in the future. Hopefully, there is no hard coding in 64-bit coding.
Read next: Sysnative folder in Windows 64-bit explained.
Why is System32 not called System64?
This is because of compatibility. Originally, Microsoft planned to rename the folder but decided against it because many developers have hard-coded the path to the system folder in their application’s source code, including “System32” in the folder path.
Is DLL 32 or 64-bit?
Dynamic Link Libraries (DLLs) can be 32-bit or 64-bit, depending on the target architecture for which they were compiled. The bitness of a DLL must match the bitness of the application loading it.