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


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

Функция RpcServerInqBindingHandle получает дескриптор привязки для вызовов RPC, обслуживаемых потоком, в котором вызывается RpcServerInqBindingHandle .

Синтаксис

RPC_STATUS RpcServerInqBindingHandle(
  RPC_BINDING_HANDLE *Binding
);

Параметры

Binding

RPC_BINDING_HANDLE структура, которая после успешного выполнения получает дескриптор привязки для вызова, обслуживаемого потоком, в котором также вызывается RpcServerInqBindingHandle .

Если вызов завершается сбоем, этот параметр не определен.

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

Эта функция возвращает RPC_S_OK при успешном выполнении; в противном случае возвращается код ошибки RPC_S_*. Эта функция не может завершиться ошибкой, если она не вызывается в потоке, который в настоящее время не обслуживает вызов RPC.

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

Комментарии

RpcServerInqBindingHandle используется для получения дескриптора привязки для вызова RPC, который в настоящее время выполняется в потоке, из которого также вызывается этот API. Так как многие API RPC требуют дескриптора привязки в качестве входных данных, это удобный способ получить дескриптор привязки.

Обратите внимание, что все api RPC на стороне сервера, которые принимают дескриптор привязки в качестве параметра, позволяют передавать ЗНАЧЕНИЕ NULL в качестве принятого значения. Передача null вместо дескриптора привязки означает, что следует использовать дескриптор привязки для вызова RPC, выполняющегося в том же потоке. Однако при вызове API на стороне сервера из отдельного потока необходимо предоставить им дескриптор привязки, отличный от NULL.

Если вы используете явные дескрипторы привязки и не используете дескриптор контекста для потока, дескриптор привязки для вызова является первым параметром подпрограммы диспетчера сервера. Однако если вы не используете явные дескрипторы или дескрипторы контекста, RpcServerInqBindingHandle является единственным способом получить дескриптор привязки для использования в другом потоке.

Этот API можно использовать как для асинхронных, так и для синхронных вызовов, хотя он менее полезен для асинхронных вызовов, так как дескриптор привязки можно получить, так как асинхронное состояние всегда является первым параметром для всех асинхронных вызовов RPC, а дескриптор привязки можно получить непосредственно из него с помощью RpcAsyncGetCallHandle.

Требования

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

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

RpcAsyncGetCallHandle