绑定选项常量

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

注意

下表中 (MQ) 的所有消息队列选项仅对 Windows 2000 有效。 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

管理网络连接集 (关联)