Share via


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
RPC_S_OK
La llamada se realizó correctamente.
 
Nota Para obtener una lista de códigos de error válidos, vea Rpc Return Values.
 

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

RpcServerInterfaceGroupClose

RpcServerInterfaceGroupDeactivate

RpcServerInterfaceGroupInqBindings