1

我有一个使用 RPC 进行进程间通信的应用程序。事实证明,在 Vista 上不允许使用与“ncalrpc”协议序列一起使用的同步 RPC 管道。我想切换到“ncacn_np”并使用带有 RPC_IF_ALLOW_LOCAL_ONLY 标志的 RpcServerRegisterEpEx()。

有没有人尝试过同样的方法?这种过渡是否存在任何可能的问题?

4

1 回答 1

3

您已经看到了有关标志使用的信息:

...注册此接口标志后,RPC 运行时拒绝远程客户端进行的调用。所有使用 ncadg_* 和 ncacn_* 协议序列的本地调用也会被拒绝,但 ncacn_np 除外。仅当调用不是来自 SRV 时,RPC 才允许调用 ncacn_NP。来自 ncalrpc 的调用总是被处理...

本地 RPC 真正使用 LPC(Microsoft Windows Internals 4 ed,来自第 802 页):
本地 RPC 可用于位于同一系统上的两个进程之间的通信,并且 RPC 运行时 DLL 使用本地过程调用 (LPC) 工具在内核模式下作为本地网络 API。

[已编辑]
更多帮助如何解决由 RPC 客户端协议注册表项引起的连接问题

于 2009-05-08T14:57:48.267 回答