Wow64DisableWow64FsRedirection (kernel32)
Last changed: vlad_pol@hotmail.com-12.47.208.59

.
Summary
Wow64DisableWow64FsRedirection disables automatic redirecton of 32-bit processes from "Windows\system32" to "Windows\SysWOW64". Use this method when you need to launch 64-bit process from 32-bit process.

C# Signature:

[DllImport("kernel32.dll", SetLastError=true)]
public static extern bool Wow64DisableWow64FsRedirection(ref IntPtr ptr);

VB Signature:

Declare Function Wow64DisableWow64FsRedirection Lib "kernel32.dll" (ByRef ptr As IntPtr) As Boolean

User-Defined Types:

None.

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

        string windir = Environment.ExpandEnvironmentVariables("%windir%");
        string system32dir = Path.Combine(windir, "System32");
        string serverManagementCmd = Path.Combine(system32dir, "ServerManagerCmd.exe");
        bool isServerManagerCmdFound = File.Exists(serverManagementCmd);
        Debug.WriteLine("Is ServerManagerCmd.exe accessible:\t" + isServerManagerCmdFound.ToString());
        IntPtr ptr = new IntPtr();
        bool isWow64FsRedirectionDisabled = Wow64DisableWow64FsRedirection(ref ptr);
        Debug.WriteLine("Is Wow64Fs Redirection disabled:\t" + isWow64FsRedirectionDisabled);
        if (isWow64FsRedirectionDisabled)
        {
        isServerManagerCmdFound = File.Exists(serverManagementCmd);
        Debug.WriteLine("Is ServerManagerCmd.exe accessible:\t" + isServerManagerCmdFound.ToString());
        bool isWow64FsRedirectionReverted = Wow64RevertWow64FsRedirection(ptr);
        Debug.WriteLine("Is Wow64Fs Redirection reverted:\t" + isWow64FsRedirectionReverted);
        }

Documentation