There are two versions of the rundll32.exe program in 64-bit versions of Windows-family operating systems:
64-bit version: %WinDir% \System32\rundll32.exe
32-bit version: %WinDir% \SysWOW64\rundll32.exe
A 64-bit application can use the 64-bit version of rundll32.exe located in %WinDir% \System32\ to load 64-bit DLL. But 32-bit programs addressing %WinDir%\System32\ are redirected into %WinDir% \SysWOW64\ for compatibility purposes and therefore they will use the 32-bit version of rundll32.exe.
If you need to address the %WinDir%\System32 folder from a 32-bit program launched in a 64-bit Windows, you may use the virtual directory %windir%\Sysnative (redirection is not used for it) or use the Wow64DisableWow64FsRedirection function to disable the redirection mechanism.
64-bit version: %WinDir% \System32\rundll32.exe
32-bit version: %WinDir% \SysWOW64\rundll32.exe
A 64-bit application can use the 64-bit version of rundll32.exe located in %WinDir% \System32\ to load 64-bit DLL. But 32-bit programs addressing %WinDir%\System32\ are redirected into %WinDir% \SysWOW64\ for compatibility purposes and therefore they will use the 32-bit version of rundll32.exe.
If you need to address the %WinDir%\System32 folder from a 32-bit program launched in a 64-bit Windows, you may use the virtual directory %windir%\Sysnative (redirection is not used for it) or use the Wow64DisableWow64FsRedirection function to disable the redirection mechanism.
References
- Discussion at stackoverflow.com. rundll32.exe equivalent for 64-bit DLLs.
- MSDN Library. File System Redirector.
No comments:
Post a Comment