IPC on Vista

I have an MFC application working fine on ME/2000/XP.

An application has 2 parts: IE plugin and an exe file. An interprocess communication is done using WM_COPYDATA message.

Starting to check it on Vista I discovered that this way of IPC doesn't work anymore: my exe doesn't get messages from my plugin. Only when my exe was elevated to a broker, it started (well, kind of) to work.

The questions:

1. is SendMessage/PostMessage (specifically, WM_COPYDATA) doesn't work between different processes at all, or only between processes with a different security level

2. What is the best way to replace WM_COPYDATA

3. If it is a named pipe, can a pipe, created by application with a higher security level be accessed by application with a lower security level

Thanks alot

OTNS



Answer this question

IPC on Vista

  • Giftson

    127 views during 2 weeks and no single answer :-(((

    I have tried named pipe already. When I am trying to connect to it on the client side (low UAC) , CreateFile fails with error code 5 - "Access is denied". If I elevate InternetExplorer, all is working just fine, but obviously it is not an option.

    Microsoftians, please make developers lives a bit easier, answer our questions!!!


  • Son_seph14

    Actually, I was able to solve the problem using the following link:

    http://msdn.microsoft.com/library/default.asp url=/library/en-us/IETechCol/dnwebgen/ProtectedMode.asp

    When I set security attributes exactly as it is shown in the article, my pipe started to work.


  • sudheer_ms

    I have the same (or a similar) problem: My program runs as a normal not elevated user. Sometimes I need to write to a "forbidden" directory or registry key. Therefore I'm launching another program with full admin rights (going through the UAC dialog) as recommended by Microsoft. Then this app will create the files or registry keys for the normal app. Unfortunately I cannot get the two programs to talk to each other. I tried SendMessage and named pipes, no success. The only thing which seems to work is to write the commands to a file on the harddisk, and then read the file from the other app - but that's quite a big overhead and not suited for fast transfers.

    Perhaps anyone as an idea how an elevated and non-elevated app could communicate Any help will be appreciated!


  • Ed209

    Please somebody answer my question:

    Is there any way to communicate between low UAC ActiveX and medium or high UAC level .exe

    After hours and hours of searching MS Vista sites, developers blogs etc. I still have no answer

     


  • Deeps_123

    I have some issue.

  • IPC on Vista