We need to run the 32-bit version of the remote desktop client on 64 bit Vista, because part of our product integrates with it, and communicates with the terminal server side app via the virtual channel. The integration loads some third party 32-bit drivers, and it is not possible to load a 32-bit dll in a 64-bit process.
Normally it is quite easy to run the 32 bit version of a windows application from the command line, e.g. run window:
C:\Windows\SysWOW64\Notepad.exe
You can tell that the process is 32-bit by checking in task monitor\processes as it will have a *32 next to the filename.
However, the remote desktop client (mstsc.exe) does not want to play ball. It always runs the 64-bit version from C:\Windows\System32\mstsc.exe regardless of how I start it (run window, 32-bit cmd windows etc). I've tried writing a 32-bit C++ program to create it (normally child processes are also 32-bit) but this did not work.
I also tried calling:
Wow64DisableWow64FsRedirection
Wow64RevertWow64FsRedirection
before and after starting mstsc.exe but this did not help either.
Anyone know a way around this?
[Edit] I've done some further investigation with process monitor, and it seems that the 32-bit version of mstsc does start first, but then this creates a second 64 bit process and the 32 bit versions closes.