RpcServerUseAllProtseqs 函数 (rpcdce.h)
RpcServerUseAllProtseqs 函数告知 RPC 运行时库使用所有受支持的协议序列来接收远程过程调用。
语法
RPC_STATUS RpcServerUseAllProtseqs(
unsigned int MaxCalls,
void *SecurityDescriptor
);
parameters
MaxCalls
ncacn_ip_tcp协议序列的积压工作队列长度。 所有其他协议序列都忽略此参数。 使用 RPC_C_PROTSEQ_MAX_REQS_DEFAULT 指定默认值。 请参阅“备注”。
SecurityDescriptor
指向为安全子系统提供的可选参数的指针。 仅用于 ncacn_np 和 ncalrpc 协议序列。 所有其他协议序列都忽略此参数。 不建议在终结点上使用安全描述符来确保服务器的安全。 此参数不显示在此 API 的 DCE 规范中。
返回值
值 | 含义 |
---|---|
|
调用成功。 |
|
没有受支持的协议序列。 |
|
内存不足。 |
|
安全描述符无效。 |
注解
对于服务器注册的每个协议序列,RPC 运行时库会创建一个或多个终结点,服务器通过这些终结点接收远程过程调用请求。 RPC 运行时库为每个协议序列创建不同的终结点。 终结点名称由 RPC 运行时或操作系统生成。 例如,对于 ncacn_ip_tcp,端口号由 RPC 运行时动态确定,具体取决于可用性和注册表设置。
应用程序必须小心地在 MaxCalls 中传递合理的值。 服务器、高级服务器或数据中心服务器上的较大值可能会导致使用大量非分页池内存。 使用过小的值也是不利的,因为如果积压队列用尽,则可能会导致 TCP RST 从服务器满足 TCP SYN 数据包。 应用程序开发人员在确定 MaxCalls 的正确值时,应平衡内存占用量和可伸缩性要求。
将计算机配置为使用选择性绑定时,成功返回并不保证服务器已为计算机上存在的所有网络接口创建终结点。 RPC 运行时可能无法侦听某些网络接口,具体取决于选择性绑定设置。 此外,如果接口尚未收到使用 DHCP 的 IP 地址,则 RPC 服务器在分配 DHCP 地址之前不会侦听网络接口。 成功返回意味着服务器正在侦听至少一个网络接口;可以通过调用 RpcServerInqBindings 函数来获取可接收远程过程调用的绑定句柄的完整列表。
有关详细信息,请参阅 服务器端绑定。 为了选择性地注册协议序列,服务器调用 RpcServerUseProtseq、 RpcServerUseProtseqIf 或 RpcServerUseProtseqEp。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | rpcdce.h (包括 Rpc.h) |
Library | Rpcrt4.lib |
DLL | Rpcrt4.dll |