rpcServerInterfaceGroupCreate 函数 (rpcdce.h)

RpcServerInterfaceGroupCreate 函数为服务器应用程序创建 RPC 服务器接口组。 此接口组完全指定 RPC 服务器应用程序的接口、终结点和空闲属性。 创建接口组后,可以根据需要激活和停用接口组。

语法

RPC_STATUS RpcServerInterfaceGroupCreate(
  [in]  RPC_INTERFACE_TEMPLATE               *Interfaces,
  [in]  unsigned long                        NumIfs,
  [in]  RPC_ENDPOINT_TEMPLATE                *Endpoints,
  [in]  unsigned long                        NumEndpoints,
  [in]  unsigned long                        IdlePeriod,
  [in]  RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN IdleCallbackFn,
  [in]  void                                 *IdleCallbackContext,
  [out] PRPC_INTERFACE_GROUP                 IfGroup
);

参数

[in] Interfaces

指向 RPC_INTERFACE_TEMPLATE 结构数组的指针,这些结构定义接口组公开的接口。

[in] NumIfs

接口中的元素数。

[in] Endpoints

指向定义接口组使用的终结点的 RPC_ENDPOINT_TEMPLATE 结构的数组的指针。

[in] NumEndpoints

终结点中的元素数。

[in] IdlePeriod

接口组变为空闲状态后,RPC 运行时在调用空闲回调之前应等待的时间长度(以秒为单位)。 0 表示立即调用回调。 INFINITE 表示服务器应用程序不关心接口组的空闲状态。

[in] IdleCallbackFn

一个RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN回调,在接口组空闲后,RPC 运行时将调用 IdlePeriod 中给定的时间长度。 仅当 IdlePeriodINFINITE 时,才能为 NULL

[in] IdleCallbackContext

要传递到 IdleCallbackFn 中空闲回调的用户定义指针。

[out] IfGroup

如果成功,则为指向接收新创建的接口组句柄 的 RPC_INTERFACE_GROUP 缓冲区的指针。 如果此函数失败, 则 IfGroup 未定义。

返回值

含义
RPC_S_OK
调用成功。
 
注意 有关有效错误代码的列表,请参阅 RPC 返回值
 

注解

可以选择在接口组空闲时通知服务器应用程序。 尽管任何应用程序都可以利用此功能,但它面向希望允许其服务空闲停止的服务开发人员。

IdlePeriod 可防止 RPC 运行时在空闲状态快速更改时生成大量通知;对于触发的服务,则帮助服务避免不必要地启动和停止。 开发人员应考虑服务初始化和关闭的成本、发生新活动的预期频率,以及选择此值时使服务保持空闲的成本。 空闲期过低会导致服务在发生新的客户端活动时频繁启动和停止,而高空闲期会导致服务消耗资源,而不执行有意义的工作。

接口组中的接口只能通过同一组的终结点调用。 不能通过属于组的终结点调用不属于接口组的接口。

RPC 服务器活动并不总是对服务器应用程序可见。 在某些情况下,即使长时间没有调度调用,也仅让客户端与服务器建立开放连接,它仍可能保持活动状态。 服务器应用程序不得依赖于声明组处于空闲状态的 RPC 运行时与上次调度调用后的时间之间的任何关联。

要求

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

另请参阅

RpcServerInterfaceGroupActivate

RpcServerInterfaceGroupClose

RpcServerInterfaceGroupDeactivate

RpcServerInterfaceGroupInqBindings