Función RpcServerListen (rpcdce.h)
La función RpcServerListen indica a la biblioteca en tiempo de ejecución rpc que escuche las llamadas a procedimientos remotos. Esta función no afectará a las interfaces de escucha automática; use RpcServerRegisterIfEx si necesita esa funcionalidad.
Sintaxis
RPC_STATUS RpcServerListen(
unsigned int MinimumCallThreads,
unsigned int MaxCalls,
unsigned int DontWait
);
Parámetros
MinimumCallThreads
Sugerencia al tiempo de ejecución de RPC que especifica el número mínimo de subprocesos de llamada que se deben crear y mantener en el servidor determinado. Este valor es solo una sugerencia y se interpreta de forma diferente en diferentes versiones de Windows. En Windows XP, este valor es el número de subprocesos creados anteriormente en cada grupo de subprocesos que crea el tiempo de ejecución de RPC. Una aplicación debe especificar una para este parámetro y aplazar las decisiones de creación de subprocesos al tiempo de ejecución de RPC.
MaxCalls
Número máximo recomendado de llamadas simultáneas a procedimientos remotos que puede ejecutar el servidor. Para permitir un rendimiento eficaz, las bibliotecas en tiempo de ejecución rpc interpretan el parámetro MaxCalls como un límite sugerido en lugar de como límite superior absoluto.
Use RPC_C_LISTEN_MAX_CALLS_DEFAULT para especificar el valor predeterminado.
DontWait
Marca que controla la devolución de RpcServerListen. Un valor distinto de cero indica que RpcServerListen debe devolverse inmediatamente después de completar el procesamiento de la función. Un valor de cero indica que RpcServerListen no debe devolver hasta que se haya llamado a la función RpcMgmtStopServerListening y se hayan completado todas las llamadas remotas.
Valor devuelto
Valor | Significado |
---|---|
|
La llamada se realizó correctamente. |
|
El servidor ya está escuchando. |
|
No hay secuencias de protocolo registradas. |
|
El valor máximo de llamadas es demasiado pequeño. |
Comentarios
Un servidor llama a RpcServerListen cuando el servidor está listo para procesar llamadas a procedimientos remotos. RPC permite que un servidor procese simultáneamente varias llamadas. El parámetro MaxCalls recomienda el número máximo de llamadas al procedimiento remoto simultáneo que debe ejecutar el servidor.
El valor MaxCalls no debe ser cero y debe ser mayor que MinimumCallThreads. Los valores mayores que 0x7FFFFFFF se establecen en 0x7FFFFFFF sin previo aviso.
Windows XP/2000: Al establecer el parámetro MaxCalls en RPC_C_LISTEN_MAX_CALLS_DEFAULT se quita el límite en las llamadas simultáneas a procedimientos remotos, en lugar de establecerlo en el valor definido por constantes de 1234. La eliminación del límite de llamadas simultáneas máximas permite tantas llamadas simultáneas a procedimientos remotos como el equipo pueda controlar. Este comportamiento permite aumentar la eficacia en el tiempo de ejecución de RPC.
Una aplicación de servidor es responsable del control de simultaneidad entre las rutinas del administrador del servidor porque cada rutina se ejecuta en un subproceso independiente.
Cuando el parámetro DontWait tiene un valor de cero, la biblioteca en tiempo de ejecución rpc continúa escuchando las llamadas a procedimientos remotos (es decir, la rutina no vuelve a la aplicación de servidor) hasta que se produzca uno de los siguientes eventos:
- Una de las rutinas de administrador de la aplicación de servidor llama a RpcMgmtStopServerListening.
- Un cliente llama a un procedimiento remoto proporcionado por el servidor que dirige al servidor para llamar a RpcMgmtStopServerListening.
- Un cliente llama a RpcMgmtStopServerListening con un identificador de enlace al servidor.
Cuando el parámetro DontWait tiene un valor distinto de cero, RpcServerListen vuelve al servidor inmediatamente después de procesar todas las instrucciones asociadas a la función. Puede usar la función RpcMgmtWaitServerListen para realizar la operación de espera normalmente asociada a RpcServerListen.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | rpcdce.h (include Rpc.h) |
Library | Rpcrt4.lib |
Archivo DLL | Rpcrt4.dll |