Моя программа использует Microsoft RPC для межпроцессного взаимодействия. Для подготовки к приему вызовов RPC программа запускает следующую последовательность:
RpcServerUseProtseqEp (), затем
RpcServerRegisterIf (), затем
RpcServerListen ()
Программа запускает свой RPC-сервер с описанной выше последовательностью, работает некоторое время, затем завершается и может быть позже перезапущена другой программой. Набор значений параметров для RpcServerUseProtseqEp () одинаков при каждом запуске программы.
Когда последовательность запускается первый раз после перезагрузки, она всегда завершается успешно, но при последующих запусках RpcServerUseProtseqEp () возвращает RPC_S_DUPLICATE_ENDPOINT («Конечная точка является дубликатом».) В настоящее время я просто игнорирую этот конкретный код ошибки и рассматриваю его как успешный тогда все остальные примитивы обычно работают нормально.
Как правильно использовать RpcServerUseProtseqEp ()? Должен ли я выполнить какую-либо очистку, чтобы отозвать зарегистрированную конечную точку или просто игнорировать код ошибки RPC_S_DUPLICATE_ENDPOINT?