Función RpcServerInterfaceGroupCreateA (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 RpcServerInterfaceGroupCreateA(
[in] RPC_INTERFACE_TEMPLATEA *Interfaces,
[in] unsigned long NumIfs,
[in] RPC_ENDPOINT_TEMPLATEA *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 interfaces.
[in] NumIfs
Número de elementos de interfaces de .
[in] Endpoints
Puntero a una matriz de RPC_ENDPOINT_TEMPLATE estructuras que definen los puntos de conexión utilizados por el grupo de interfaz.
[in] NumEndpoints
Número de elementos de Puntos de conexión.
[in] IdlePeriod
El período de tiempo en segundos después de que el grupo de interfaz quede 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 se preocupa por el estado de inactividad del grupo de interfaz.
[in] IdleCallbackFn
Una 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 se puede 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. |
Observaciones
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 desean 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 de inactividad 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 mantenerlo activo 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 declarando que el grupo está inactivo y el tiempo desde que se envió la última llamada.
Nota
El encabezado rpcdce.h define RpcServerInterfaceGroupCreate como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 8 [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows Server 2012 [solo aplicaciones de escritorio] |
de la plataforma de destino de |
Windows |
encabezado de |
rpcdce.h (include Rpc.h) |
biblioteca de |
Rpcrt4.lib |
DLL de |
Rpcrt4.dll |
Consulte también
RpcServerInterfaceGroupActivate