Константы параметра привязки

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

Примечание

Все параметры очереди сообщений (MQ) в следующей таблице допустимы только для Windows 2000. Windows XP и более поздние версии не поддерживают постановку сообщений в очередь. Разработчикам не рекомендуется использовать очередь сообщений.

Констант/значение Описание
RPC_C_OPT_BINDING_NONCAUSAL
9
По умолчанию. Значение FALSE — причинно-следственный порядок вызовов. Вызовы RPC выполняются в строгом порядке отправки. См. заметки.
Если задано значение TRUE, неисправное упорядочение вызовов. Вызовы RPC выполняются независимо. См. заметки.
RPC_C_OPT_MAX_OPTIONS
17
Не требуется для программ приложений. Используется корпорацией Майкрософт для внутренних целей.
RPC_C_DONT_FAIL
4
Не требуется для программ приложений. Используется корпорацией Майкрософт для внутренних целей.
RPC_C_OPT_SESSION_ID
6
Если задано значение TRUE, для каждого подключения создается идентификатор сеанса.
RPC_C_OPT_COOKIE_AUTH
7
Если задано значение TRUE, для подключений используется проверка подлинности на основе файлов cookie на стороне клиента. Указатель на структуру RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR передается в качестве параметра OptionValue в RpcBindingSetOption.
RPC_C_OPT_RESOURCE_TYPE_UUID
8
Не требуется для программ приложений. Используется корпорацией Майкрософт для внутренних целей.
RPC_C_OPT_DONT_LINGER
13
Если задано значение TRUE, принудительное завершение связи после последнего дескриптора привязки или дескриптора контекста освобождается.
RPC_C_OPT_UNIQUE_BINDING
11
Если задано значение true, RPC не использует существующие подключения повторно. Для каждого соединения открывается уникальный дескриптор привязки, а состояние сохраняется для каждого уникального дескриптора привязки.

Комментарии

По умолчанию библиотека времени выполнения RPC выполняет вызовы для заданного дескриптора привязки из каждого потока приложения в строгом порядке отправки. Это не гарантирует сериализацию вызовов из разных потоков в одном дескрипторе привязки. Многопоточные приложения должны сериализовать свои вызовы RPC. Если такое поведение слишком строгое, можно включить некаузальное упорядочение. При этом библиотека времени выполнения RPC выполняет вызовы независимо. Он не налагает никакого порядка на их представление.

Одним из примеров приложения, которое может найти некаузальное упорядочение полезным, является многопоточная программа, потоки которой выполняют вызовы на одном дескрипторе привязки. Аналогичным образом программа, использующая несколько асинхронных вызовов для дескриптора привязки, находит удобный вариант некаузального упорядочения. Другим примером может быть программа интернет-прокси, которая использует один поток для обработки запросов для нескольких клиентов. В каждом из этих случаев было бы крайне ограничительно пытаться сериализовать удаленные вызовы процедур.

Параметр RPC_C_OPT_DONT_LINGER можно задать только для дескрипторов привязки, использующих последовательности протокола ncalrpc или ncacn_* . Его нельзя использовать в последовательностях протоколов ncadg_* . Функция RpcBindingSetOption с этим параметром должна вызываться для дескриптора привязки, для которого выполнен по крайней мере один вызов RPC. Если для дескриптора привязки не было выполнено ни один вызов RPC, RPC_S_WRONG_KIND_OF_BINDING возвращается из вызова функции RpcBindingSetOption . Параметр вступает в силу для всей связи независимо от количества дескрипторов привязки, присоединенных к ассоциации. Так как он проверяется перед уничтожением связи, его можно задать в любое время до закрытия дескриптора привязки.

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Rpcdce.h;
Rpcdcep.h

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

RpcBindingSetOption

RpcBindingInqOption

Управление наборами сетевых подключений (ассоциации)