RPC_BINDING_HANDLE
Тип данных RPC_BINDING_HANDLE объявляет дескриптор привязки, содержащий сведения, которые библиотека времени выполнения RPC использует для доступа к сведениям о привязке.
typedef I_RPC_HANDLE RPC_BINDING_HANDLE;
Комментарии
Библиотека времени выполнения использует сведения о привязке для установления связи "клиент-сервер", которая позволяет выполнять удаленные вызовы процедур. В зависимости от контекста, в котором создается дескриптор привязки, он считается дескриптором привязки сервера или дескриптором привязки клиента.
Дескриптор привязки сервера содержит сведения, необходимые клиенту для установления связи с определенным сервером. Любое количество подпрограмм выполнения API RPC возвращает дескриптор привязки сервера, который можно использовать для удаленного вызова процедуры.
Дескриптор привязки клиента нельзя использовать для удаленного вызова процедуры. Библиотека времени выполнения RPC создает и предоставляет дескриптор привязки клиента к процедуре вызываемого сервера (также называемой подпрограммой диспетчера сервера) в качестве параметра RPC_BINDING_HANDLE. Дескриптор привязки клиента содержит сведения о вызывающем клиенте.
Функции RpcBinding* и RpcNsBinding* возвращают код состояния RPC_S_WRONG_KIND_OF_BINDING, когда приложение предоставляет неправильный тип дескриптора привязки.
Приложение может совместно использовать один дескриптор привязки в нескольких потоках выполнения. Библиотека времени выполнения RPC управляет параллельными вызовами удаленных процедур, которые используют один дескриптор привязки. Однако приложение отвечает за управление параллелизмом дескриптора привязки для операций, изменяющих дескриптор привязки. Эти операции включают следующие подпрограммы:
Например, если приложение совместно использует дескриптор привязки в двух потоках выполнения и сбрасывает конечную точку дескриптора привязки в одном из потоков путем вызова RpcBindingReset, результаты не определены. Дескриптор привязки в другом потоке также может быть сброшен, операция может завершиться сбоем или завершиться сбоем процесса. Распространенной ошибкой является освобождение дескриптора привязки во время вызова; обычно происходит сбой вызывающего процесса.
Если параллелизм не нужен, можно спроектировать приложение для создания копии дескриптора привязки, вызвав RpcBindingCopy. В этом случае операция с первым дескриптором привязки не влияет на второй дескриптор привязки.
Подпрограммы, требующие дескриптора привязки в качестве параметра, отображают тип данных RPC_BINDING_HANDLE. Параметры дескриптора привязки передаются по значению.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
Заголовок |
|