Función RpcServerInterfaceGroupCreate (rpcdce.h)
La función RpcServerInterfaceGroupCreate crea un grupo de interfaz de servidor RPC para la aplicación de servidor. Este grupo de interfaz especifica completamente las interfaces, los puntos de conexión y las propiedades inactivas de una aplicación de servidor RPC. Una vez creado, se puede activar y desactivar un grupo de interfaz, ya que la aplicación requiere.
Sintaxis
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
);
Parámetros
[in] Interfaces
Puntero a una matriz de estructuras de RPC_INTERFACE_TEMPLATE que definen las interfaces expuestas por el grupo de interfaz.
[in] NumIfs
Número de elementos en Interfaces.
[in] Endpoints
Puntero a una matriz de estructuras de RPC_ENDPOINT_TEMPLATE que definen los puntos de conexión utilizados por el grupo de interfaz.
[in] NumEndpoints
Número de elementos en Puntos de conexión.
[in] IdlePeriod
El tiempo transcurrido en segundos después de que el grupo de interfaz deje de estar inactivo, el tiempo de ejecución de RPC debe esperar antes de invocar la devolución de llamada inactiva. 0 significa que la devolución de llamada se invoca inmediatamente. INFINITE significa que la aplicación de servidor no le importa el estado de inactividad del grupo de interfaz.
[in] IdleCallbackFn
Devolución de llamada RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN que invocará el tiempo de ejecución de RPC una vez que el grupo de interfaz esté inactivo durante el período de tiempo especificado en IdlePeriod. Solo puede ser NULL si IdlePeriod es INFINITE.
[in] IdleCallbackContext
Puntero definido por el usuario que se pasará a la devolución de llamada inactiva en IdleCallbackFn.
[out] IfGroup
Si se ejecuta correctamente, un puntero a un búfer de RPC_INTERFACE_GROUP que recibe el identificador del grupo de interfaz recién creado. Si se produce un error en esta función, IfGroup no está definido.
Valor devuelto
Valor | Significado |
---|---|
|
La llamada se realizó correctamente. |
Comentarios
Opcionalmente, una aplicación de servidor puede recibir notificaciones cuando un grupo de interfaz deja de estar inactivo. Aunque cualquier aplicación puede aprovechar esta funcionalidad, se dirige a los desarrolladores de servicios que quieran permitir que su servicio deje de estar inactivo.
IdlePeriod impide que el tiempo de ejecución de RPC genere un gran número de notificaciones si el estado inactivo cambia rápidamente y, en el caso de los servicios desencadenados, ayuda al servicio a evitar que se inicie y detenga innecesariamente. Los desarrolladores deben tener en cuenta el costo de inicialización y apagado del servicio, la frecuencia esperada con la que se producirá la nueva actividad y el costo de mantener el servicio inactivo al seleccionar este valor. Un período de inactividad bajo hará que el servicio se inicie y detenga con frecuencia a medida que se produzca una nueva actividad de cliente, mientras que un período de inactividad elevado hará que el servicio consuma recursos sin realizar un trabajo significativo.
Las interfaces de un grupo de interfaz solo se pueden llamar a través de puntos de conexión del mismo grupo. Las interfaces que no forman parte de un grupo de interfaz no se pueden llamar a través de puntos de conexión que forman parte de un grupo.
La actividad del servidor RPC no siempre es visible para la aplicación de servidor. En algunos casos, simplemente tener un cliente con una conexión abierta al servidor puede mantenerla activa incluso si no se han enviado llamadas durante un largo período de tiempo. Las aplicaciones de servidor no deben depender de ninguna correlación entre el tiempo de ejecución de RPC que declara que el grupo está inactivo y el tiempo desde que se envió la última llamada.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 8 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2012 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | rpcdce.h (include Rpc.h) |
Library | Rpcrt4.lib |
Archivo DLL | Rpcrt4.dll |
Consulte también
RpcServerInterfaceGroupActivate