Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die RpcEpRegisterNoReplace-Funktion fügt der lokalen Endpunktzuordnungsdatenbank Serveradresseninformationen hinzu.
Syntax
RPC_STATUS RpcEpRegisterNoReplaceW(
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 Bindungsvektor, ü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-Parameterwert gibt an, dass keine Objekt-UUIDs registriert werden müssen.
Annotation
Zeiger auf den Zeichenzeichenfolgenkommentar, der auf jedes produktübergreifende Element angewendet wird, das der lokalen Endpunktzuordnungsdatenbank hinzugefügt wurde. Die Zeichenfolge kann bis zu 64 Zeichen lang sein, einschließlich des Null-Endzeichens. Geben Sie einen NULL-Wert oder eine mit Null beendete Zeichenfolge ("\0") an, wenn keine Anmerkungszeichenfolge vorhanden ist.
Die Anmerkungszeichenfolge wird nur von Anwendungen für Informationen verwendet. RPC verwendet diese Zeichenfolge nicht, um zu bestimmen, mit welcher Serverinstanz ein Client kommuniziert oder Elemente in der Endpunktzuordnungsdatenbank aufzählt.
Rückgabewert
| Wert | Bedeutung |
|---|---|
|
Der Aufruf war erfolgreich. |
|
Keine Bindungen. |
|
Das Bindungshandle war ungültig. |
|
Dies war die falsche Art von Bindung für den Vorgang. |
Bemerkungen
Die funktion RpcEpRegisterNoReplace fügt Einträge zur Endpunktzuordnungsdatenbank des lokalen Hosts hinzu. Diese Funktion ersetzt keine vorhandenen Datenbankeinträge.
Ein Server verwendet RpcEpRegisterNoReplace- anstelle RpcEpRegister-, wenn mehrere Instanzen des Servers auf demselben Host ausgeführt werden. Mit anderen Worten: Verwenden Sie diese Funktion, wenn mehrere Serverinstanzen die gleiche Schnittstellen-UUID, Objekt-UUID und Protokollsequenz gleichzeitig bieten.
Da Einträge beim Aufrufen RpcEpRegisterNoReplace-nicht ersetzt werden, müssen die Server die Registrierung aufheben, bevor sie die Ausführung beenden. Andernfalls werden veraltete Daten jedes Mal gesammelt, wenn eine Serverinstanz nicht mehr ausgeführt wird, ohne RpcEpUnregister-aufzurufen. Veraltete Einträge erhöhen die Wahrscheinlichkeit, dass ein Client Endpunkte an nicht vorhandene Server empfängt. Der Client verbringt Zeit mit dem Versuch, mit einem nicht vorhandenen Server zu kommunizieren, bevor ein anderer Endpunkt abgerufen wird.
Ein Server kann RpcEpRegister- und RpcEpRegisterNoReplace- verwenden, um Einträge in der Endpunktzuordnungsdatenbank zu registrieren. Vor Windows 2000 waren zwei Funktionen verfügbar, um einem Server das Überschreiben veralteter Einträge in der Endpunktzuordnungsdatenbank aus früheren Serverinstanzen zu ermöglichen, die nicht mehr ausgeführt werden. Die Endpunktzuordnungsdatenbank entfernt Einträge, die von einer Serverinstanz registriert wurden, automatisch, sobald der Server nicht mehr funktioniert. Server dürfen die Endpunktzuordnungseinträge eines anderen Servers jedoch nicht für Sicherheitszwecke ersetzen. Daher führen rpcEpRegister und RpcEpRegisterNoReplace weitgehend die gleichen Funktionen aus.
Eine Serveranwendung ruft RpcEpRegister- auf, um durch Aufrufen einer der folgenden Funktionen angegebene Endpunkte zu registrieren:
- RpcServerUseAllProtseqs
- RpcServerUseProtseq-
- RpcServerUseProtseqEp-
- RpcServerUseAllProtseqsIf
- RpcServerUseProtseqIf-
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 RpcEpRegisterNoReplace- aufrufen, um sich für mehrere Clients verfügbar zu machen. Andernfalls ist der automatisch gestartete Server nur für den Client bekannt, für den der Server gestartet wurde.
Jedes Element, das der Endpunktzuordnungsdatenbank hinzugefügt wurde, enthält logisch Folgendes:
- Schnittstellen-UUID
- Schnittstellenversion (Haupt- und Nebenversion)
- Bindungshandle
- Objekt UUID (optional)
- Anmerkung (optional)
Anmerkung
Der header rpcdce.h definiert RpcEpRegisterNoReplace 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 |