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 |
---|---|
|
La chiamata ha avuto esito positivo. |
|
Il server è già in ascolto. |
|
Nessuna sequenza di protocollo registrata. |
|
Il valore massimo delle chiamate è troppo piccolo. |
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:
- Una delle routine di gestione dell'applicazione server chiama RpcMgmtStopServerListening.
- Un client chiama una procedura remota fornita dal server che indirizza il server a chiamare RpcMgmtStopServerListening.
- Un client chiama RpcMgmtStopServerListening con un handle di associazione al server.
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.
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 |