Регистрация конечных точек

Регистрация серверной программы на карте конечных точек хост-компьютера сервера позволяет клиентским программам определить, какую конечную точку (обычно TCP/IP-порт или именованный канал) серверная программа прослушивает. Чтобы зарегистрировать себя на карте конечной точки серверной системы, серверная программа вызывает функцию RpcEpRegister, как показано в следующем фрагменте кода:

// This example assumes that MyInterface_v1_0_s_ifspec is a valid data
// structure that represents the interface being registered. The 
// variable is a valid pointer to a binding vector.
RPC_STATUS status;
status = RpcEpRegister(
    MyInterface_v1_0_s_ifspec,
    rpcBindingVector,
    NULL,
    NULL);

Первый параметр для RpcEpRegister — это структура, представляющая интерфейс. Его можно найти в файле заголовка, созданном компилятором MIDL из MIDL-файла для этого распределенного приложения. См. разработку интерфейса. Затем приложение RpcEpRegister должно передать набор дескрипторов привязки, которые хранятся в векторе привязки.

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

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