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
RPC_S_OK
La llamada se realizó correctamente.
RPC_S_ALREADY_LISTENING
El servidor ya está escuchando.
RPC_S_NO_PROTSEQS_REGISTERED
No hay secuencias de protocolo registradas.
RPC_S_MAX_CALLS_TOO_SMALL
El valor máximo de llamadas es demasiado pequeño.
 
Nota Para obtener una lista de códigos de error válidos, vea Rpc Return Values.
 

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 vez que recibe una solicitud de detención de escucha, la biblioteca en tiempo de ejecución rpc deja de aceptar nuevas llamadas de procedimiento remoto para todas las interfaces registradas. La ejecución de llamadas puede completarse, incluidas las devoluciones de llamada. Una vez completadas todas las llamadas, RpcServerListen vuelve al autor de la llamada.

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.

Nota La implementación rpc de Microsoft de RpcServerListen incluye dos parámetros adicionales que no aparecen en la especificación DCE: DontWait y MinimumCallThreads.
 

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

Consulte también

RpcMgmtStopServerListening

RpcMgmtWaitServerListen

RpcServerRegisterIf

RpcServerRegisterIfEx

RpcServerUseAllProtseqs

RpcServerUseAllProtseqsIf

RpcServerUseProtseq

RpcServerUseProtseqEp

RpcServerUseProtseqIf