Freigeben über


RpcServerUseProtseqExW-Funktion (rpcdce.h)

Die funktion RpcServerUseProtseqEx weist die RPC-Laufzeitbibliothek an, die angegebene Protokollsequenz für den Empfang von Remoteprozeduraufrufen zu verwenden.

Syntax

RPC_STATUS RpcServerUseProtseqExW(
  RPC_WSTR     Protseq,
  unsigned int MaxCalls,
  void         *SecurityDescriptor,
  PRPC_POLICY  Policy
);

Parameter

Protseq

Zeigen Sie auf einen Zeichenfolgenbezeichner der Protokollsequenz, um sie bei der RPC-Laufzeitbibliothek zu registrieren.

MaxCalls

Länge der Backlogwarteschlange 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 Anmerkungen.

SecurityDescriptor

Zeiger auf einen optionalen Parameter, der für das Windows XP/2000/NT-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 eine Serversicherheit zu gewährleisten, 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 eine Bindung an Netzwerkschnittstellenkarten zu ermöglichen. Mit der RPC_POLICY-Struktur kann der Aufrufer die RPC-Laufzeitbibliothek unter anderem mit einem Intranetport oder einem Internetport leiten.

Rückgabewert

Wert Bedeutung
RPC_S_OK
Der Aufruf war erfolgreich.
RPC_S_PROTSEQ_NOT_SUPPORTED
Die Protokollsequenz wird auf diesem Host nicht unterstützt.
RPC_S_INVALID_RPC_PROTSEQ
Die Protokollsequenz.
RPC_S_OUT_OF_MEMORY
Das System ist nicht genügend Arbeitsspeicher.
RPC_S_INVALID_SECURITY_DESC
Der Sicherheitsdeskriptor ist ungültig.
 
Hinweis Eine Liste gültiger Fehlercodes finden Sie unter RPC-Rückgabewerte.
 

Bemerkungen

Die Parameter und Effekte von RpcServerUseProtseqEx- subsumieren die Parameter und Effekte von RpcServerUseProtseq-. Der Unterschied besteht im feld Policy, mit dem Sie die Portzuweisung für dynamische Ports einschränken und multihomed machines selektiv an Netzwerkschnittstellenkarten binden können.

Wenn Sie die NICFlags Feld der RPC_POLICY Struktur auf Null festlegen, entspricht diese erweiterte Funktion funktional dem ursprünglichen RpcServerUseProtseq-, und der Server wird basierend auf den Einstellungen in der Systemregistrierung an NICs gebunden. Weitere Informationen finden Sie unter Configuring the Registry for Port Allocations and Selective Binding.

Hinweis Die Kennzeicheneinstellungen im Feld Richtlinie sind nur wirksam, wenn die ncacn_ip_tcp- oder ncadg_ip_udp Protokollsequenz verwendet wird. Bei allen anderen Protokollsequenzen ignoriert die RPC-Laufzeit diese Werte.
 
Eine Serveranwendung ruft RpcServerUseProtseqEx- auf, um eine Protokollsequenz mit der RPC-Laufzeitbibliothek zu registrieren. Um Remoteprozeduraufrufanforderungen zu empfangen, muss ein Server mindestens eine Protokollsequenz mit der RPC-Laufzeitbibliothek registrieren. Eine Serveranwendung kann RpcServerUseProtseqEx- mehrmals aufrufen, um zusätzliche Protokollsequenzen zu registrieren.

Für jede von einem Server registrierte Protokollsequenz 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. Der Endpunktname wird von der RPC-Laufzeit oder dem Betriebssystem generiert. Beispielsweise wird für ncacn_ip_tcpdie Portnummer dynamisch von der RPC-Laufzeit abhängig von verfügbarkeits- und Registrierungseinstellungen bestimmt.

Für MaxCallsist der von der Anwendung bereitgestellte Wert nur ein Hinweis. Die RPC-Laufzeit oder der Windows Sockets-Anbieter überschreiben möglicherweise den Wert. Beispielsweise ist der Wert unter Windows XP oder Windows 2000 Professional auf 5 beschränkt. Werte, die größer als 5 sind, werden ignoriert, und stattdessen wird 5 verwendet. Unter Windows Server 2003 und Windows 2000 Server wird der Wert berücksichtigt.

Anwendungen müssen darauf achten, angemessene Werte in MaxCallszu übergeben. Große Werte auf Server, Advanced Server oder Datacenter Server können dazu führen, dass eine große Menge nicht ausgelagerter Poolspeicher verwendet wird. Die Verwendung eines zu kleinen Werts ist auch ungünstig, da es dazu führen kann, dass TCP SYN-Pakete von TCP RST vom Server erfüllt werden, wenn die Backlogwarteschlange erschöpft wird. Ein Anwendungsentwickler sollte den Speicherbedarf im Vergleich zu den Skalierbarkeitsanforderungen ausgleichen, wenn der richtige Wert für MaxCalls-ermittelt wird.

Wenn der Computer für die Verwendung selektiver 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. Die RPC-Laufzeit lauscht möglicherweise nicht auf einige Netzwerkschnittstellen, abhängig von den selektiven Bindungseinstellungen. Wenn eine Schnittstelle noch keine IP-Adresse mit DHCP empfangen hat, lauscht der RPC-Server erst dann auf der Netzwerkschnittstelle, wenn ihm eine DHCP-Adresse zugewiesen ist. Eine erfolgreiche Rückgabe bedeutet, dass der Server mindestens eine Netzwerkschnittstelle überwacht; die vollständige Liste der Bindungshandles, über die Remoteprozeduraufrufe empfangen werden können, kann mit einem Aufruf der RpcServerInqBindings-Funktion abgerufen werden.

Um alle Protokollsequenzen zu registrieren, ruft ein Server RpcServerUseAllProtseqsEx Routine auf.

Weitere Informationen finden Sie unter Server-Side Binding.

Anmerkung

Der rpcdce.h-Header definiert RpcServerUseProtseqEx als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- rpcdce.h (include Rpc.h)
Library Rpcrt4.lib
DLL- Rpcrt4.dll

Siehe auch

RpcServerUseAllProtseqsEx

RpcServerUseAllProtseqsIfEx-

RpcServerUseProtseqEpEx-

RpcServerUseProtseqIfEx-