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
操作系统或传输不支持 函数。 请注意,在使用除 ncacn_* 以外的任何协议序列的绑定句柄上调用 RpcBindingSetOption 将失败并返回此值。
 
注意 有关有效错误代码的列表,请参阅 RPC 返回值
 

注解

RPC 客户端进程使用 RpcBindingSetOption 来控制服务质量、呼叫日志记录和呼叫生存期。 更改绑定句柄属性将影响所有远程调用,直到再次调用 RpcBindingSetOption 更改属性。 还可以调用 RpcBindingSetAuthInfo 来设置绑定句柄的安全选项。

Windowsxp: RPC 调用超时功能:

调用 RpcBindingSetOption 函数时,Option 设置为 RPC_C_OPT_CALL_TIMEOUT,OptionValue 设置为超时值 (以毫秒为单位) 使开发人员能够设置 RPC 服务器超时,以防止线程被无响应 RPC 服务器所俘虏。 此功能可避免开发人员显式取消对无响应 RPC 服务器的调用。 RPC 客户端在收到每个数据包后重置超时计时器监视。 如果超时过期而未从服务器接收数据包,则 RPC 客户端将返回RPC_S_CALL_CANCELLED。 请注意,即使客户端将放弃响应,RPC 服务器最终仍可能执行调用。

对于无限超时,将 OptionValue 设置为 INFINITE 或零。调用正在进行时,不要从另一个线程更改此选项。 不要尝试重试已取消的调用;这样做会增加已无响应服务器的负担。 RPC 调用超时功能仅适用于面向连接的同步 RPC 调用,例如 在 ncacn_* 协议序列上进行的调用。 对于数据报、异步或本地 RPC 调用,RPC 运行时会忽略此选项。

RPC 调用超时功能在许多情况下非常有用,例如用户界面更新,否则会等待繁忙的 RPC 服务器响应 (让用户观看沙漏) ,或者当许多 RPC 服务器可以处理请求时,从而使客户端能够更快地识别和绕过无响应的服务器。

要求

要求
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 rpcdce.h (包括 Rpc.h)
Library Rpcrt4.lib
DLL Rpcrt4.dll

另请参阅

RPC 消息队列

RpcBindingInqAuthClient

RpcBindingInqOption

RpcBindingSetAuthInfo

message