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


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

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

Синтаксис

RPC_STATUS RpcBindingSetOption(
  RPC_BINDING_HANDLE hBinding,
  unsigned long      option,
  ULONG_PTR          optionValue
);

Параметры

hBinding

Привязка сервера для изменения.

option

Свойство привязки для изменения. Список параметров привязки и их возможных значений см. в разделе Константы параметра привязки. Сведения о функции времени ожидания вызова RPC см. в разделе Примечания.

optionValue

Новое значение для свойства привязки. См. заметки.

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

Значение Значение
RPC_S_OK
Вызов выполнен успешно.
RPC_S_CANNOT_SUPPORT
Функция не поддерживается ни для операционной системы, ни для транспорта. Обратите внимание, что вызов RpcBindingSetOption для дескрипторов привязки, использующих любую последовательность протоколов, кроме ncacn_* , завершится ошибкой и возвратит это значение.
 
Примечание Список допустимых кодов ошибок см. в разделе Возвращаемые значения RPC.
 

Комментарии

Клиентские процессы RPC используют RpcBindingSetOption для управления качеством обслуживания доставки, ведением журнала вызовов и временем существования вызовов. Изменение свойств обработчика привязки будет влиять на все удаленные вызовы, пока свойства не будут изменены другим вызовом RpcBindingSetOption. Можно также вызвать RpcBindingSetAuthInfo , чтобы задать параметры безопасности для дескриптора привязки.

Windows XP: Функция времени ожидания вызова RPC:

Вызов функции RpcBindingSetOptionс параметром RPC_C_OPT_CALL_TIMEOUT и параметром OptionValue со значением времени ожидания (в миллисекундах) позволяет разработчикам задать время ожидания RPC-сервера, которое предотвращает попадание потока в неотвечивый RPC-сервер. Эта функция избавляет разработчиков от явной отмены вызова сервера RPC, не отвечающего на запросы. Клиент RPC сбрасывает мониторинг таймера для времени ожидания при получении каждого пакета. Если истекает время ожидания без получения пакета с сервера, клиент RPC возвращает RPC_S_CALL_CANCELLED. Обратите внимание, что сервер RPC может по-прежнему выполнять вызов, даже если клиент отменит ответ.

Задайте для параметра OptionValue значение INFINITE или ноль для бесконечного времени ожидания. Не изменяйте этот параметр из другого потока во время выполнения вызова. Не пытайтесь повторить отмененный вызов; это увеличивает нагрузку на сервер, который уже не отвечает. Функция времени ожидания вызова RPC полезна только для синхронных вызовов RPC, ориентированных на подключение, например для последовательностей протокола ncacn_* . Для вызовов datagram, асинхронных или локальных вызовов RPC этот параметр игнорируется во время выполнения RPC.

Функция времени ожидания вызова RPC полезна во многих ситуациях, таких как обновления пользовательского интерфейса, которые в противном случае ждали бы ответа занятого RPC-сервера (оставляя пользователя смотреть песочные часы) или когда многие серверы RPC могут обслуживать запрос, тем самым позволяя клиентам быстрее идентифицировать и обходить неотвечающие серверы.

Требования

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

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

Очередь сообщений RPC

RpcBindingInqAuthClient

RpcBindingInqOption

RpcBindingSetAuthInfo

message