我的程序使用 Microsoft RPC 进行进程间通信。为了准备接收 RPC 调用,程序运行以下序列:
RpcServerUseProtseqEp(),然后
RpcServerRegisterIf(),然后
RPCServerListen()
该程序以上述顺序启动其 RPC 服务器,工作一段时间,然后终止,稍后可能由另一个程序重新启动。每次运行程序时,RpcServerUseProtseqEp() 的参数值集都是相同的。
当序列在重新启动后第一次运行时,它总是成功,但在随后的运行中 RpcServerUseProtseqEp() 返回 RPC_S_DUPLICATE_ENDPOINT (“端点是重复的。”)目前我只是忽略这个特定的错误代码并将其视为成功,然后所有其他原语通常工作正常。
使用 RpcServerUseProtseqEp() 的正确方法是什么?我应该进行任何清理以撤销注册的端点还是继续忽略 RPC_S_DUPLICATE_ENDPOINT 错误代码?