RpcServerUseAllProtseqsIfEx-Funktion (rpcdce.h)
Die RpcServerUseAllProtseqsIfEx-Funktion weist die RPC-Laufzeitbibliothek an, alle in der Schnittstellenspezifikation angegebenen Protokollsequenzen und Endpunkte für den Empfang von Remoteprozeduraufrufen zu verwenden.
Syntax
RPC_STATUS RpcServerUseAllProtseqsIfEx(
unsigned int MaxCalls,
RPC_IF_HANDLE IfSpec,
void *SecurityDescriptor,
PRPC_POLICY Policy
);
Parameter
MaxCalls
Backlogwarteschlangenlänge für die ncacn_ip_tcp Protokollsequenz. Alle anderen Protokollsequenzen ignorieren diesen Parameter. Verwenden Sie RPC_C_PROTSEQ_MAX_REQS_DEFAULT, um den Standardwert anzugeben. Siehe Hinweise.
IfSpec
Schnittstelle, die die Protokollsequenzen und die entsprechenden Endpunktinformationen enthält, die beim Erstellen von Bindungshandles verwendet werden sollen.
SecurityDescriptor
Zeiger auf einen optionalen Parameter, der für das Sicherheitssubsystem bereitgestellt wird. Wird nur für ncacn_np - und ncalrpc-Protokollsequenzen verwendet. Alle anderen Protokollsequenzen ignorieren diesen Parameter. Die Verwendung eines Sicherheitsdeskriptors auf dem Endpunkt, um einen Server zu schützen, wird nicht empfohlen. Dieser Parameter wird in der DCE-Spezifikation für diese API nicht angezeigt.
Policy
Zeiger auf die RPC_POLICY-Struktur , die Flags enthält, um die Portzuordnung für dynamische Ports einzuschränken und es mehreren Computern zu ermöglichen, selektiv an Netzwerkschnittstellenkarten zu binden.
Rückgabewert
Wert | Bedeutung |
---|---|
|
Der Aufruf war erfolgreich. |
|
Es gibt keine unterstützten Protokollsequenzen. |
|
Das Endpunktformat. |
|
Das System hat nicht genügend Arbeitsspeicher. |
|
Der Endpunkt ist ein Duplikat. |
|
Der Sicherheitsdeskriptor ist zu kurz. |
|
Die RPC-Protokollsequenz ist ungültig. |
Hinweise
Wenn Sie das Feld NICFlags der RPC_POLICY-Struktur auf 0 (null) festlegen, entspricht diese erweiterte Funktion der ursprünglichen RpcServerUseAllProtseqsIfEx, und der Server wird basierend auf den Einstellungen in der Systemregistrierung an NICs gebunden. Informationen dazu, wie die Registrierungseinstellungen die verfügbaren Internet- und Intranetports definieren, finden Sie unter Konfigurieren der Registrierung für Portzuordnungen und selektive Bindung.
Zum Empfangen von Remoteprozeduraufrufanforderungen muss ein Server mindestens eine Protokollsequenz bei der RPC-Laufzeitbibliothek registrieren. Für jede Protokollsequenz, die von einem Server registriert wird, erstellt die RPC-Laufzeitbibliothek einen oder mehrere Endpunkte, über die der Server Remoteprozeduraufrufanforderungen empfängt. Die RPC-Laufzeitbibliothek erstellt für jede Protokollsequenz unterschiedliche Endpunkte.
Anwendungen müssen darauf achten, vernünftige Werte in MaxCalls zu übergeben. Große Werte auf Server, Advanced Server oder Datacenter Server können dazu führen, dass eine große Menge an nicht ausgelagertem Poolarbeitsspeicher verwendet wird. Die Verwendung eines zu kleinen Werts ist ebenfalls ungünstig, da dies dazu führen kann, dass TCP SYN-Pakete vom Server erfüllt werden, wenn die Backlogwarteschlange erschöpft ist. Ein Anwendungsentwickler sollte bei der Bestimmung des richtigen Werts für MaxCalls zwischen Arbeitsspeicherbedarf und Skalierbarkeitsanforderungen abwägen.
Wenn der Computer für die Verwendung der selektiven Bindung konfiguriert ist, garantiert die erfolgreiche Rückgabe nicht, dass der Server Endpunkte für alle Netzwerkschnittstellen erstellt hat, die auf dem Computer vorhanden sind. Abhängig von den Einstellungen für die selektive Bindung lauscht die RPC-Laufzeit möglicherweise nicht an einigen Netzwerkschnittstellen. Wenn eine Schnittstelle noch keine IP-Adresse mit DHCP empfangen hat, lauscht der RPC-Server außerdem erst an der Netzwerkschnittstelle, wenn ihr eine DHCP-Adresse zugewiesen wurde. Eine erfolgreiche Rückgabe impliziert, dass der Server auf mindestens einer Netzwerkschnittstelle lauscht. Die vollständige Liste der Bindungshandles, über die Remoteprozeduraufrufe empfangen werden können, kann mit einem Aufruf der RpcServerInqBindings-Funktion abgerufen werden.
Um ausgewählte Protokollsequenzen zu registrieren, die in der IDL-Datei angegeben sind, ruft ein Server RpcServerUseProtseqIfEx auf. Weitere Informationen finden Sie unter Serverseitige Bindung.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | rpcdce.h (rpc.h einschließen) |
Bibliothek | Rpcrt4.lib |
DLL | Rpcrt4.dll |