Condividi tramite


Funzione RpcServerUseAllProtseqsIf (rpcdce.h)

La funzione RpcServerUseAllProtseqsIf indica alla libreria di runtime RPC di usare tutte le sequenze di protocolli e gli endpoint specificati nella specifica dell'interfaccia per la ricezione di chiamate di routine remote.

Sintassi

RPC_STATUS RpcServerUseAllProtseqsIf(
  unsigned int  MaxCalls,
  RPC_IF_HANDLE IfSpec,
  void          *SecurityDescriptor
);

Parametri

MaxCalls

Lunghezza coda backlog per la sequenza di protocollo ncacn_ip_tcp . Tutte le altre sequenze di protocollo ignorano questo parametro. Usare RPC_C_PROTSEQ_MAX_REQS_DEFAULT per specificare il valore predefinito. Vedere la sezione Osservazioni.

IfSpec

Interfaccia contenente le sequenze di protocollo e le informazioni sull'endpoint corrispondenti da usare per la creazione di handle di associazione.

SecurityDescriptor

Puntatore a un parametro facoltativo fornito per il sottosistema di sicurezza. Usato solo per le sequenze di protocollo ncacn_np e ncalrpc . Tutte le altre sequenze di protocollo ignorano questo parametro. Non è consigliabile usare un descrittore di sicurezza nell'endpoint per proteggere un server. Questo parametro non viene visualizzato nella specifica DCE per questa API.

Valore restituito

Valore Significato
RPC_S_OK
La chiamata ha avuto esito positivo.
RPC_S_NO_PROTSEQS
Nessuna sequenza di protocollo supportata.
RPC_S_INVALID_ENDPOINT_FORMAT
Formato dell'endpoint.
RPC_S_OUT_OF_MEMORY
Il sistema non è in memoria.
RPC_S_DUPLICATE_ENDPOINT
L'endpoint è un duplicato.
RPC_S_INVALID_SECURITY_DESC
Il descrittore di sicurezza non è valido.
RPC_S_INVALID_RPC_PROTSEQ
Sequenza di protocollo RPC non valida.
 
Nota Per un elenco di codici di errore validi, vedere Valori restituiti RPC.
 

Commenti

Nota L'ascolto su tutte le sequenze di protocollo supportate non è consigliato, perché fa sì che il server sia in ascolto su tutte le sequenze di protocollo, incluse le sequenze di protocolli non mainstream. È consigliabile che i server siano in ascolto solo sulle sequenze di protocollo Mainstream .
 
Un'applicazione server chiama RpcServerUseAllProtseqsIf per la registrazione con la libreria di runtime RPC tutte le sequenze di protocollo e le informazioni sull'indirizzo endpoint associate fornite nel file IDL. Per un elenco delle sequenze di protocollo supportate da RPC, vedere Associazione di stringhe.

Per ricevere richieste di chiamata di routine remota, un server deve registrare almeno una sequenza di protocollo con la libreria di runtime RPC. Per ogni sequenza di protocollo registrata da un server, la libreria di runtime RPC crea uno o più endpoint tramite cui il server riceve richieste di chiamata di routine remota. La libreria di runtime RPC crea endpoint diversi per ogni sequenza di protocollo.

Nota L'uso della funzione RpcServerUseAllProtseqsIf non causa l'ascolto del server nelle sequenze di protocollo seguenti:
 
Nota Per restare in ascolto su una di queste sequenze di protocollo, ogni sequenza deve essere selezionata singolarmente.
 
Per MaxCalls, il valore fornito dall'applicazione è solo un hint. Il runtime RPC o il provider Windows Sockets può eseguire l'override del valore. Ad esempio, in Windows XP o Windows 2000 Professional, il valore è limitato a 5. I valori maggiori di 5 vengono ignorati e vengono usati 5. In Windows Server 2003 e Windows 2000 Server, il valore verrà rispettato.

Le applicazioni devono prestare attenzione a passare valori ragionevoli in MaxCalls. I valori di grandi dimensioni nel server, nel server avanzato o nel server datacenter possono causare l'uso di una grande quantità di memoria del pool non di paging. Anche l'uso di un valore troppo piccolo non è favorevole, perché può comportare l'esaurimento dei pacchetti TCP SYN da parte di TCP RST dal server. Uno sviluppatore di applicazioni deve bilanciare il footprint di memoria rispetto ai requisiti di scalabilità quando si determina il valore appropriato per MaxCalls.

Quando il computer è configurato per l'uso dell'associazione selettiva, la restituzione riuscita non garantisce che il server abbia creato endpoint per tutte le interfacce di rete presenti nel computer. Il runtime RPC potrebbe non essere in ascolto su alcune interfacce di rete a seconda delle impostazioni di associazione selettiva. Inoltre, se un'interfaccia non ha ancora ricevuto un indirizzo IP tramite DHCP, il server RPC non è in ascolto sull'interfaccia di rete finché non viene assegnato un indirizzo DHCP. Una restituzione riuscita implica che il server è in ascolto su almeno un'interfaccia di rete; È possibile ottenere l'elenco completo degli handle di associazione su cui è possibile ricevere chiamate di routine remote con una chiamata alla funzione RpcServerInqBindings .

Per altre informazioni, vedere Associazione lato server. Per registrare le sequenze di protocollo selezionate specificate nel file IDL, un server chiama RpcServerUseProtseqIf.

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

RpcBindingVectorFree

RpcEpRegister

RpcEpRegisterNoReplace

RpcNsBindingExport

RpcServerInqBindings

RpcServerListen

RpcServerRegisterIf

RpcServerRegisterIfEx

RpcServerUseAllProtseqs

RpcServerUseProtseq

RpcServerUseProtseqEp

RpcServerUseProtseqIf