RpcEpRegisterW-Funktion (rpcdce.h)

Die RpcEpRegister-Funktion fügt Serveradresseninformationen in der lokalen Endpunktzuordnungsdatenbank hinzu oder ersetzt diese.

Syntax

RPC_STATUS RpcEpRegisterW(
  RPC_IF_HANDLE      IfSpec,
  RPC_BINDING_VECTOR *BindingVector,
  UUID_VECTOR        *UuidVector,
  RPC_WSTR           Annotation
);

Parameter

IfSpec

Schnittstelle zum Registrieren bei der lokalen Endpunktzuordnungsdatenbank.

BindingVector

Zeiger auf einen Vektor von Bindungshandles, über den der Server Remoteprozeduraufrufe empfangen kann.

UuidVector

Zeiger auf einen Vektor von Objekt-UUIDs, die vom Server angeboten werden. Die Serveranwendung erstellt diesen Vektor. Ein NULL-Argumentwert gibt an, dass keine Objekt-UUIDs registriert werden müssen.

Annotation

Zeiger auf den Zeichenfolgenkommentar, der auf jedes produktübergreifende Element angewendet wird, das der lokalen Endpunktzuordnungsdatenbank hinzugefügt wird. Die Zeichenfolge kann bis zu 64 Zeichen lang sein, einschließlich des NULL-Endzeichens. Geben Sie einen NULL-Wert oder eine null-beendete Zeichenfolge ("\0") an, wenn keine Anmerkungszeichenfolge vorhanden ist.

Die Anmerkungszeichenfolge wird nur von Anwendungen als Informationszwecken verwendet. RPC verwendet diese Zeichenfolge nicht, um zu bestimmen, welcher Server instance ein Client mit oder zum Auflisten von Elementen in der Endpunktzuordnungsdatenbank kommuniziert.

Rückgabewert

Wert Bedeutung
RPC_S_OK
Der Aufruf war erfolgreich.
RPC_S_NO_BINDINGS
Keine Bindungen.
RPC_S_INVALID_BINDING
Das Bindungshandle war ungültig.
RPC_S_WRONG_KIND_OF_BINDING
Dies war die falsche Art der Bindung für den Vorgang.
 
Hinweis Eine Liste der gültigen Fehlercodes finden Sie unter RPC-Rückgabewerte.
 

Hinweise

Die RpcEpRegister-Funktion fügt Einträge in der Endpunktzuordnungsdatenbank des lokalen Hosts hinzu oder ersetzt sie. Bei einem vorhandenen Datenbankeintrag, der der bereitgestellten Schnittstellenspezifikation, dem Bindungshandle und der Objekt-UUID entspricht, ersetzt diese Funktion den Endpunkt des Eintrags durch den Endpunkt im bereitgestellten Bindungshandle.

Ein Server kann RpcEpRegister und RpcEpRegisterNoReplace verwenden, um Einträge in der Endpunktzuordnungsdatenbank zu registrieren. Vor Windows 2000 waren zwei Funktionen verfügbar, mit denen ein Server veraltete Einträge in der Endpunktzuordnungsdatenbank überschreiben kann, die von früheren Serverinstanzen, die nicht mehr ausgeführt werden, übrig geblieben sind. Die Endpunktzuordnungsdatenbank entfernt automatisch Einträge, die von einem Server instance registriert wurden, sobald der Server nicht mehr funktioniert. Server dürfen die Endpunktzuordnungseinträge eines anderen Servers aus Sicherheitsgründen jedoch nicht ersetzen. Daher führen RpcEpRegister und RpcEpRegisterNoReplace weitgehend die gleiche Funktionalität aus.

Eine Serveranwendung ruft RpcEpRegister auf, um Endpunkte zu registrieren, die durch Aufrufen einer der folgenden Funktionen angegeben werden:

Wenn der Server auch in die name-service-Datenbank exportiert, ruft der Server RpcEpRegister mit denselben Werten ifSpec, BindingVector und UuidVector auf, die beim Aufrufen der RpcNsBindingExport-Funktion verwendet werden.

Wenn eine Protokollsequenz ohne Angabe eines Endpunkts verwendet wird, generiert die RPC-Laufzeitbibliothek automatisch einen dynamischen Endpunkt. In diesem Fall kann der Server RpcServerInqBindings gefolgt von RpcEpRegister aufrufen, um sich für mehrere Clients verfügbar zu machen. Andernfalls ist der automatisch gestartete Server nur dem Client bekannt, für den der Server gestartet wurde. Jedes Der datenbank endpoint-map hinzugefügte Element enthält logisch Folgendes:

  • Schnittstellen-UUID
  • Schnittstellenversion (Haupt- und Nebenversion)
  • Bindungshandle
  • Objekt-UUID (optional)
  • Anmerkung (optional)
RpcEpRegister erstellt ein produktübergreifendes Element aus den Parametern IfSpec, BindingVector und UuidVector und fügt jedes Element im produktübergreifenden Element als separate Registrierung in der datenbank endpoint-map hinzu.

Hinweis

Der rpcdce.h-Header definiert RpcEpRegister 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 nicht codierungsneutralem Code 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
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile rpcdce.h (include Rpc.h)
Bibliothek Rpcrt4.lib
DLL Rpcrt4.dll

Weitere Informationen

RpcBindingFromStringBinding

RpcEpRegisterNoReplace

RpcEpUnregister

RpcNsBindingExport

RpcServerInqBindings

RpcServerUseAllProtseqs

RpcServerUseAllProtseqsIf

RpcServerUseProtseq

RpcServerUseProtseqEp

RpcServerUseProtseqIf