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


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

Приложение вызывает RpcBindingServerFromClient для преобразования дескриптора привязки клиента в частично привязанный дескриптор привязки сервера.

Синтаксис

RPC_STATUS RpcBindingServerFromClient(
  RPC_BINDING_HANDLE ClientBinding,
  RPC_BINDING_HANDLE *ServerBinding
);

Параметры

ClientBinding

Дескриптор привязки клиента для преобразования в дескриптор привязки сервера. Если указано нулевое значение, сервер олицетворяет клиент, обслуживаемый этим потоком сервера.

Примечание Этот параметр не может иметь значение NULL в Windows NT 4.0.
 

ServerBinding

Возвращает дескриптор привязки сервера.

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

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

Комментарии

Следующие последовательности протоколов поддерживают RpcBindingServerFromClient:

Приложение получает дескриптор привязки клиента из времени выполнения RPC. Когда удаленный вызов процедуры поступает на сервер, во время выполнения создается дескриптор привязки клиента, содержащий сведения о вызывающем клиенте. Во время выполнения этот дескриптор передается в функцию диспетчера сервера в качестве первого аргумента.

Вызов RpcBindingServerFromClient преобразует этот дескриптор клиента в дескриптор сервера со следующими свойствами:

  • Серверный дескриптор является частично привязанным дескриптором. Он содержит сетевой адрес вызывающего клиента, но не имеет конечной точки.
  • Дескриптор сервера содержит тот же UUID объекта, который используется вызывающим клиентом. Это может быть UUID nil. Дополнительные сведения о том, как клиент задает UUID объекта для вызова, см. в разделах RpcBindingsetObject, RpcNsBindingImportBegin, RpcNsBindingLookupBegin и RpcBindingFromStringBindingBinding.
  • Дескриптор сервера не содержит сведений о проверке подлинности.
Серверное приложение должно вызывать RpcBindingFree, чтобы освободить ресурсы, используемые дескриптором привязки сервера, когда он больше не нужен.
Примечание Чтобы запросить адрес клиента, приложение начинается с вызова функции RpcBindingServerFromClient для получения частично привязанного дескриптора привязки сервера. Дескриптор привязки сервера можно использовать для получения строковой привязки путем вызова RpcBindingToStringBinding. Затем сервер может вызвать RpcStringBindingParse, чтобы извлечь сетевой адрес клиента из строковой привязки.
 

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header rpcdce.h (включая Rpc.h)
Библиотека Rpcrt4.lib
DLL Rpcrt4.dll

См. также раздел

RpcBindingFree

RpcBindingFromStringBinding

RpcBindingSetObject

RpcEpRegister

RpcEpRegisterNoReplace

RpcNsBindingImportBegin

RpcNsBindingLookupBegin