绑定选项常量

应用程序设置绑定选项常量来控制 RPC 运行时库如何处理远程过程调用。 下表列出了每个绑定属性以及绑定属性的相关常量值。

注意

下表中 (MQ) 的所有消息队列选项仅适用于 2000 Windows。 Windows XP 和更高版本不支持消息队列。 不建议开发人员使用消息队列。

常量/值 说明
RPC_C_OPT_BINDING_NONCAUSAL
9
默认。 如果 为 FALSE,则为因果调用排序。 RPC 调用按严格的提交顺序执行。 请参阅“备注”。
如果 为 TRUE,则为非因果调用排序。 RPC 调用是独立执行的。 请参阅“备注”。
RPC_C_OPT_MAX_OPTIONS
17
应用程序程序不需要。 Microsoft 在内部使用。
RPC_C_DONT_FAIL
4
应用程序程序不需要。 Microsoft 在内部使用。
RPC_C_OPT_SESSION_ID
6
如果 为 TRUE,则会为每个连接生成会话 ID。
RPC_C_OPT_COOKIE_AUTH
7
如果 为 TRUE,则使用基于客户端 Cookie 的身份验证进行连接。 指向RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR结构的指针作为 RpcBindingSetOption 中的 OptionValue 参数传递。
RPC_C_OPT_RESOURCE_TYPE_UUID
8
应用程序程序不需要。 Microsoft 在内部使用。
RPC_C_OPT_DONT_LINGER
13
如果 为 TRUE,则释放上一个绑定句柄/上下文句柄后,强制关闭关联。
RPC_C_OPT_UNIQUE_BINDING
11
设置为 true 时,RPC 不会重复使用现有连接。 为每个连接打开唯一绑定句柄,并且为每个唯一绑定句柄维护状态。

注解

默认情况下,RPC 运行时库会严格按提交顺序从应用程序的每个线程对给定绑定句柄执行调用。 这不能保证对同一绑定句柄上的不同线程的调用进行序列化。 多线程应用程序必须序列化其 RPC 调用。 如果此行为太严格,则可以启用非因果排序。 执行此操作时,RPC 运行时库独立执行调用。 它不对其提交施加任何命令。

可能发现非因果排序的应用程序的一个示例是多线程程序,其线程对同一绑定句柄进行调用。 同样,对绑定句柄使用多个异步调用的程序会发现非因果性排序是一个方便的选项。 另一个示例可能是使用单个线程处理多个客户端的请求的 Internet 代理程序。 在这些情况下,尝试序列化远程过程调用将极其严格。

只能在使用 ncalrpcncacn_* 协议序列的绑定句柄上设置RPC_C_OPT_DONT_LINGER选项。 它不能用于 ncadg_* 协议序列。 必须对至少有一个 RPC 调用的绑定句柄调用具有此选项的 RpcBindingSetOption 函数。 如果未对绑定句柄进行 RPC 调用, 则从RpcBindingSetOption 函数调用返回RPC_S_WRONG_KIND_OF_BINDING。 无论关联附加了多少个绑定句柄,该选项都会对整个关联生效。 由于在销毁关联之前对其进行检查,因此可以在绑定句柄关闭之前随时设置它。

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Rpcdce.h;
Rpcdcep.h

另请参阅

RpcBindingSetOption

RpcBindingInqOption

管理网络连接集 (关联)