Hi Andrew!
Thank you very much for your quick replay!
I thought there was some sort of protection, because out of many programs that I tested for compatibility, ramdiskws.exe was the only one that showed issues when my code gets injected. After your replay I analysed my entire code base and found the reason: division by zero inside a constructor for a global object. For some reason the rest of the programs continue to function and ignore this error. What's odd, the debugger (Visual Studio 2010) doesn't catch the exception. The result was never used. ramdiskws.exe aborts the rest of the DLL code, so I can't get to DllMain() to attach or the destructors to clean up.
After resolving my own mistake, I can inject my code into ramdiskws.exe. BTW I'm working on a tool that snaps windows to screen edges or other windows and I hope to release it soon as open source.
Thank you for your help! All resolved now.
I wish you a Merry Christmas and Happy Holiday!
George