views:

182

answers:

1

I have an application that uses RPC for interprocess communications. Turns out that synchronous RPC pipes used with "ncalrpc" protocol sequence are not alowed on Vista. I want to switch to "ncacn_np" and use RpcServerRegisterEpEx() with RPC_IF_ALLOW_LOCAL_ONLY flag.

Has anyone tried the same yet? Are there any possible problems associated with such transition?

+1  A: 

You've seen this information about flag usage :

...When this interface flag is registered, the RPC runtime rejects calls made by remote clients. All local calls using ncadg_* and ncacn_* protocol sequences are also rejected, with the exception of ncacn_np. RPC allows ncacn_NP calls only if the call does not come from SRV. Calls from ncalrpc are always processed...

RPC for local really use LPC (Microsoft Windows Internals 4 ed, fron page 802):
Local RPC can be used for communication between two processes located on the same system, and the RPC run-time DLL uses the local procedure call (LPC) facilities in kernel mode as the local networking API.

[EDITED]
More some help How to troubleshoot connectivity issues that are caused by RPC client protocol registry entries

lsalamon
Do you mean tt if I specify "ncacn_np" and "loca only" flag it will still be using "ncalrpc"? Btw what is "SRV" here?
sharptooth
SRV should be location of services referenced at RFC2782 (http://www.ietf.org/rfc/rfc2782.txt)
lsalamon
Totally confused about SRV. Opened a new question http://stackoverflow.com/questions/851294/what-is-srv-in-ms-rpc-and-what-should-i-know-about-it
sharptooth