RPC_POLICY 结构 (rpcdce.h)

RPC_POLICY 结构包含用于确定多宿主计算机上的绑定的标志,以及使用 ncacn_ip_tcpncadg_ip_udp 协议时的端口分配。

语法

typedef struct _RPC_POLICY {
  unsigned int  Length;
  unsigned long EndpointFlags;
  unsigned long NICFlags;
} RPC_POLICY, *PRPC_POLICY;

成员

Length

RPC_POLICY结构的大小(以字节为单位)。 Length 成员允许兼容此结构的未来版本,其中可能包含其他字段。 在代码中初始化RPC_POLICY结构时,始终将 Length 设置为 sizeof (RPC_POLICY)

EndpointFlags

一组标志,用于确定服务器接收远程过程调用的一个或多个端口的属性。 可以使用给定协议序列的值集中的按位 OR 运算符) 指定多个标志 (。 下表列出了 EndpointFlags 成员的可能值。

含义
0
指定系统默认值。
RPC_C_USE_INTERNET_PORT
从注册表中定义为“Internet 可用”的端口之一分配终结点。 仅对 ncacn_ip_tcpncadg_ip_udp 协议序列有效。
RPC_C_USE_INTRANET_PORT
从注册表中定义为“Intranet 可用”的端口之一分配终结点。 仅对 ncacn_ip_tcpncadg_ip_udp 协议序列有效。
RPC_C_MQ_TEMPORARY
RPC 服务器退出时,将自动删除服务器进程接收队列。 队列中仍有任何未完成的调用都将丢失。 这是默认值。 仅对 ncadg_mq 协议序列有效。
RPC_C_MQ_PERMANENT
指定服务器进程 -接收队列在服务器进程退出后保留。 默认情况下,当服务器进程终止时,将删除队列。 仅对ncadg_mq协议序列有效。
RPC_C_MQ_CLEAR_ON_OPEN
如果由于以前作为永久队列打开而已存在接收队列,请清除队列中等待的任何未完成的调用。 仅对ncadg_mq协议序列有效。
RPC_C_MQ_USE_EXISTING_SECURITY
如果接收队列已存在,请不要修改其现有的身份验证或加密设置。 仅对ncadg_mq协议序列有效。
RPC_C_MQ_AUTHENTICATE
服务器进程接收队列仅接受来自客户端的经过身份验证的调用。 默认值是接受经过身份验证和未经身份验证的调用。 仅对ncadg_mq协议序列有效。
RPC_C_MQ_ENCRYPT
对服务器的调用是加密的。 默认值是接受加密和未加密的调用。 仅对ncadg_mq协议序列有效。
RPC_C_MQ_AUTHN_LEVEL_NONE
服务器的接收队列接受来自客户端的所有调用。 这是默认的身份验证级别。 仅对 ncadg_mq 协议有效。
RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY
将服务器的接收队列设置为仅接受身份验证级别RPC_C_AUTHN_LEVEL_PKT_INTEGRITY或RPC_C_AUTHN_LEVEL_PKT_PRIVACY的客户端调用。 仅对ncadg_mq协议序列有效。
RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY
将服务器的接收队列设置为仅接受具有身份验证级别RPC_C_AUTHN_LEVEL_PKT_PRIVACY的客户端调用。 忽略身份验证级别较低的调用。 仅对ncadg_mq协议序列有效。
 
 
注意 如果注册表不包含任何指定默认策略的键,则 EndpointFlags 成员在运行时将不起作用。 如果某个密钥缺失或包含无效值,则该协议的整个配置 ( ncacn_ip_tcpncadg_ip_udpncadg_mq) 标记为无效,并且通过该协议对 RpcServerUseProtseq* 函数的所有调用都将失败。
 

NICFlags

用于绑定到网络接口卡 (NIC) 的策略。 下表列出了 NICFlags 成员的可能值。

含义
0
根据注册表设置绑定到 NIC。 使用 RPC_POLICY 结构定义消息队列属性时,请始终使用此值。
RPC_C_BIND_TO_ALL_NICS
重写注册表设置并绑定到所有 NIC。 如果注册表中缺少 Bind 键,则 NICFlags 成员在运行时将不起作用。 如果密钥包含无效值,则整个配置将被标记为无效,并且对 RpcServerUseProtseq* 的所有调用都将失败。

注解

可以使用 RPC_Policy 结构在运行时为远程过程调用设置策略。 这些策略包括:

  • 消息队列:允许服务器指定消息队列属性,例如安全性、传递质量和服务器进程队列的生存期。 此策略仅适用于通过消息队列传输 (ncadg_mq) 进行远程调用。
  • 动态端口的端口分配:指定此应用程序注册的终结点应转到 Internet 可用端口集还是 Intranet 可用端口集。
  • 选择性绑定:允许多宿主计算机选择性地绑定到 NIC。
注意 端口分配和选择性绑定策略仅对通过 TCP ( ncacn_ip_tcp ) 和 UDP ( ncadg_ip_udp) 连接的远程调用有效。 有关详细信息,请参阅 为端口分配和选择性绑定配置注册表
 

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 rpcdce.h (包括 Rpc.h)

另请参阅

为端口分配和选择性绑定配置注册表

RPC 消息队列

RpcServerUseAllProtseqsEx

RpcServerUseAllProtseqsIfEx

RpcServerUseProtseqEpEx

RpcServerUseProtseqEx

RpcServerUseProtseqIfEx