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 中给定的时间长度。 仅当 IdlePeriod 为 INFINITE 时,才能为 NULL。
[in] IdleCallbackContext
要传递到 IdleCallbackFn 中空闲回调的用户定义指针。
[out] IfGroup
如果成功,则为指向接收新创建的接口组句柄 的 RPC_INTERFACE_GROUP 缓冲区的指针。 如果此函数失败, 则 IfGroup 未定义。
返回值
值 | 含义 |
---|---|
|
调用成功。 |
注解
可以选择在接口组空闲时通知服务器应用程序。 尽管任何应用程序都可以利用此功能,但它面向希望允许其服务空闲停止的服务开发人员。
IdlePeriod 可防止 RPC 运行时在空闲状态快速更改时生成大量通知;对于触发的服务,则帮助服务避免不必要地启动和停止。 开发人员应考虑服务初始化和关闭的成本、发生新活动的预期频率,以及选择此值时使服务保持空闲的成本。 空闲期过低会导致服务在发生新的客户端活动时频繁启动和停止,而高空闲期会导致服务消耗资源,而不执行有意义的工作。
接口组中的接口只能通过同一组的终结点调用。 不能通过属于组的终结点调用不属于接口组的接口。
RPC 服务器活动并不总是对服务器应用程序可见。 在某些情况下,即使长时间没有调度调用,也仅让客户端与服务器建立开放连接,它仍可能保持活动状态。 服务器应用程序不得依赖于声明组处于空闲状态的 RPC 运行时与上次调度调用后的时间之间的任何关联。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2012 [仅限桌面应用] |
目标平台 | Windows |
标头 | rpcdce.h (包括 Rpc.h) |
Library | Rpcrt4.lib |
DLL | Rpcrt4.dll |
另请参阅
RpcServerInterfaceGroupActivate