Condividi tramite


Funzione RpcServerListen (rpcdce.h)

La funzione RpcServerListen segnala alla libreria di runtime RPC di restare in ascolto delle chiamate di routine remote. Questa funzione non influirà sulle interfacce di ascolto automatico; se necessario, usare RpcServerRegisterIfEx .

Sintassi

RPC_STATUS RpcServerListen(
  unsigned int MinimumCallThreads,
  unsigned int MaxCalls,
  unsigned int DontWait
);

Parametri

MinimumCallThreads

Hint per il runtime RPC che specifica il numero minimo di thread di chiamata che devono essere creati e gestiti nel server specificato. Questo valore è solo un hint e viene interpretato in modo diverso in versioni diverse di Windows. In Windows XP questo valore è il numero di thread creati in precedenza in ogni pool di thread creato dal runtime RPC. Un'applicazione deve specificarne una per questo parametro e rinviare le decisioni di creazione del thread al runtime RPC.

MaxCalls

Numero massimo consigliato di chiamate simultanee alla procedura remota che il server può eseguire. Per consentire prestazioni efficienti, le librerie di runtime RPC interpretano il parametro MaxCalls come limite consigliato anziché come limite superiore assoluto.

Usare RPC_C_LISTEN_MAX_CALLS_DEFAULT per specificare il valore predefinito.

DontWait

Contrassegnare il controllo del ritorno da RpcServerListen. Un valore diverso da zero indica che RpcServerListen deve restituire immediatamente dopo il completamento dell'elaborazione della funzione. Il valore zero indica che RpcServerListen non deve restituire finché non viene chiamata la funzione RpcMgmtStopServerListening e tutte le chiamate remote sono state completate.

Valore restituito

Valore Significato
RPC_S_OK
La chiamata ha avuto esito positivo.
RPC_S_ALREADY_LISTENING
Il server è già in ascolto.
RPC_S_NO_PROTSEQS_REGISTERED
Nessuna sequenza di protocollo registrata.
RPC_S_MAX_CALLS_TOO_SMALL
Il valore massimo delle chiamate è troppo piccolo.
 
Nota Per un elenco di codici di errore validi, vedere Valori restituiti RPC.
 

Commenti

Un server chiama RpcServerListen quando il server è pronto per elaborare le chiamate di procedura remota. RPC consente a un server di elaborare contemporaneamente più chiamate. Il parametro MaxCalls consiglia di eseguire il numero massimo di chiamate di routine remota simultanee al server.

Il valore MaxCalls non deve essere zero e deve essere maggiore di MinimumCallThreads. I valori maggiori di 0x7FFFFFFF sono impostati su 0x7FFFFFFF senza preavviso.

Windows XP/2000: L'impostazione del parametro MaxCalls su RPC_C_LISTEN_MAX_CALLS_DEFAULT rimuove il limite per le chiamate di routine remote simultanee, anziché impostarlo sul valore definito dalla costante 1234. La rimozione del limite per le chiamate simultanee massime consente tutte le chiamate simultanee di routine remote che il computer può gestire. Questo comportamento consente un aumento dell'efficienza nel runtime RPC.

Un'applicazione server è responsabile del controllo della concorrenza tra le routine di server manager perché ogni routine viene eseguita in un thread separato.

Quando il parametro DontWait ha un valore pari a zero, la libreria di runtime RPC continua ad ascoltare le chiamate di routine remote , ovvero la routine non torna all'applicazione server fino a quando non si verifica uno degli eventi seguenti:

Dopo aver ricevuto una richiesta di arresto dell'ascolto, la libreria di runtime RPC smette di accettare nuove chiamate di routine remota per tutte le interfacce registrate. L'esecuzione di chiamate può essere completata, inclusi i callback. Al termine di tutte le chiamate, RpcServerListen torna al chiamante.

Quando il parametro DontWait ha un valore diverso da zero, RpcServerListen torna al server immediatamente dopo l'elaborazione di tutte le istruzioni associate alla funzione. È possibile usare la funzione RpcMgmtWaitServerListen per eseguire l'operazione di attesa in genere associata a RpcServerListen.

Nota L'implementazione RPC Microsoft di RpcServerListen include due parametri aggiuntivi che non vengono visualizzati nella specifica DCE: DontWait e MinimumCallThreads.
 

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione rpcdce.h (include Rpc.h)
Libreria Rpcrt4.lib
DLL Rpcrt4.dll

Vedi anche

RpcMgmtStopServerListening

RpcMgmtWaitServerListen

RpcServerRegisterIf

RpcServerRegisterIfEx

RpcServerUseAllProtseqs

RpcServerUseAllProtseqsIf

RpcServerUseProtseq

RpcServerUseProtseqEp

RpcServerUseProtseqIf