Поделиться через


Функция RpcEpRegisterW (rpcdce.h)

Функция RpcEpRegister добавляет или заменяет сведения об адресе сервера в локальной базе данных карты конечных точек.

Синтаксис

RPC_STATUS RpcEpRegisterW(
  RPC_IF_HANDLE      IfSpec,
  RPC_BINDING_VECTOR *BindingVector,
  UUID_VECTOR        *UuidVector,
  RPC_WSTR           Annotation
);

Параметры

IfSpec

Интерфейс для регистрации в локальной базе данных карты конечных точек.

BindingVector

Указатель на вектор дескрипторов привязки, через которые сервер может получать удаленные вызовы процедур.

UuidVector

Указатель на вектор UUID объектов, предлагаемых сервером. Серверное приложение создает этот вектор. Значение аргумента NULL указывает, что для регистрации объектов нет идентификаторов UUID объекта.

Annotation

Указатель на комментарий строки символов, примененный к каждому элементу кросс-продукта, добавленному в локальную базу данных карты конечных точек. Строка может содержать до 64 символов, включая символ конца NULL. Укажите значение NULL или строку, завершаемую значением NULL (\0), если строки заметки отсутствуют.

Строка заметки используется приложениями только для сведений. RPC не использует эту строку для определения экземпляра сервера, с которым клиент взаимодействует или для перечисления элементов в базе данных карты конечных точек.

Возвращаемое значение

Ценность Значение
RPC_S_OK
Вызов выполнен успешно.
RPC_S_NO_BINDINGS
Привязки отсутствуют.
RPC_S_INVALID_BINDING
Дескриптор привязки недопустим.
RPC_S_WRONG_KIND_OF_BINDING
Это был неправильный вид привязки для операции.
 
Примечание Список допустимых кодов ошибок см. в разделе возвращаемых значений RPC.
 

Замечания

Функция RpcEpRegister добавляет или заменяет записи в базе данных конечной точки локального узла. Для существующей записи базы данных, которая соответствует указанной спецификации интерфейса, дескриптору привязки и объекту UUID, эта функция заменяет конечную точку записи конечной точкой в предоставленном дескрипторе привязки.

Сервер может использовать RpcEpRegister и RpcEpRegisterNoReplace для регистрации записей в базе данных сопоставления конечных точек. Ранее в Windows 2000 были доступны две функции, позволяющие серверу перезаписывать устаревшие записи в базе данных сопоставления конечных точек слева от предыдущих экземпляров сервера, которые больше не работают. База данных mapper конечной точки автоматически удаляет записи, зарегистрированные экземпляром сервера, как только сервер перестанет работать. Однако серверы не могут заменить записи сопоставления конечных точек другого сервера в целях безопасности. Поэтому RpcEpRegister и RpcEpRegisterNoReplace выполняют в значительной степени те же функции.

Серверное приложение вызывает RpcEpRegister для регистрации конечных точек, указанных путем вызова любой из следующих функций:

Если сервер также экспортирует в базу данных службы имен, сервер вызывает RpcEpRegister с тем же IfSpec, BindingVectorи значениями UuidVector, используемыми при вызове функции RpcNsBindingExport.

Если последовательность протоколов используется без указания конечной точки, библиотека времени выполнения RPC автоматически создает динамическую конечную точку. В этом случае сервер может вызывать RpcServerInqBindings за которым следует RpcEpRegister, чтобы сделать себя доступным для нескольких клиентов. В противном случае автоматически запущенный сервер известен только клиенту, для которого был запущен сервер. Каждый элемент, добавленный в базу данных карты конечной точки, логически содержит следующее:

  • Интерфейс UUID
  • Версия интерфейса (основной и дополнительный)
  • Дескриптор привязки
  • Объект UUID (необязательно)
  • Заметка (необязательно)
RpcEpRegister создает кросс-продукт из IfSpec, BindingVectorи параметры UuidVector и добавляет каждый элемент в кросс-продукт в качестве отдельной регистрации в базе данных карты конечных точек.

Заметка

Заголовок rpcdce.h определяет RpcEpRegister как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка rpcdce.h (include Rpc.h)
библиотеки Rpcrt4.lib
DLL Rpcrt4.dll

См. также

RpcBindingFromStringBinding

RpcEpRegisterNoReplace

RpcEpUnregister

RpcNsBindingExport

RpcServerInqBindings

RpcServerUseAllProtseqs

RpcServerUseAllProtseqsIf

RpcServerUseProtseq

RpcServerUseProtseqEp

RpcServerUseProtseqIf