In a 32bit application, I have to copy a file to the 64bit system folder
(C:\Windows\System32\
instead of C:\Windows\SysWOW64\
)
For this, I tried to get the folder using the WinAPI function SHGetKnownFolderPath
with parameter FOLDERID_ProgramFilesX64 (GUID: 6D809377-6AF0-444b-8957-A3773F02200E).
But unfortunately, this is not allowed (as mentioned in the remarks section) and the function result correctly is 'file not found'.
Is there a way to accomplish this?
You are requesting the PROGRAM FILES folder, not the SYSTEM folder. Look at
FOLDERID_System
andFOLDERID_SystemX86
instead.Alternatively, use
FOLDERID_Windows
to get the Windows installation folder, and then append the specialSysNative
alias to the end of it, let the File System Redirector locate the actual folder for you, per the documentation: