I’m trying to copy a file to system32 folder, I use {sys} constant provided by Inno Setup.

First failure

The script for this file looks like this

Source: "..\Release\kernel_driver\mydriver.sys"; DestDir: "{sys}\drivers"; Permissions: admins-full

This should copy the file to C:\Windows\System32\drivers\mhydriver.sys
So this obviously failed since I’m writing this post…The file is copied to this path instead C:\Windows\SysWOW64\drivers

Second failure

After some research, it turns out {sys} constant isn’t just mapped to system32. To test if this is really the cause, I tried to use an absolute path like this

Source: "..\Release\kernel_driver\mydriver.sys"; DestDir: "C:\Windows\System32\drivers"; Permissions: admins-full

Sadly, the file shows in SysWOW64 again.

The actual cause

After this simple test, the problem is not about the {sys} constant. This behaviour is caused by "windows file system redirection" on 64 bits windows running 32 bits application. Windows redirects the file intended to system32 to sysWOW64 silently.


We can either disable the feature by calling Wow64DisableWow64FsRedirection or we can simply tell Inno Setup to flag the file as 64 bit.

Source: "..\Release\kernel_driver\mhydriver.sys"; DestDir: "{sys}\drivers"; Flags: 64bit; Permissions: admins-full

Install again and claps.