Freigeben über


RpcNsBindingUnexportA-Funktion (rpcnsi.h)

Die RpcNsBindingUnexport-Funktion entfernt die Bindungshandles für eine Schnittstelle und Objekte aus einem Eintrag in der Name-Dienst-Datenbank.

Hinweis Diese Funktion wird unter Windows Vista und höheren Betriebssystemen nicht unterstützt.
 

Syntax

RPC_STATUS RpcNsBindingUnexportA(
  unsigned long EntryNameSyntax,
  RPC_CSTR      EntryName,
  RPC_IF_HANDLE IfSpec,
  UUID_VECTOR   *ObjectUuidVec
);

Parameter

EntryNameSyntax

Syntax von EntryName.

Um die im Registrierungswerteintrag HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\NameService\DefaultSyntaxangegebene Syntax zu verwenden, geben Sie den Wert RPC_C_NS_SYNTAX_DEFAULT an.

EntryName

Zeiger auf den Eintragsnamen, aus dem Bindungshandles und Objekt-UUIDs entfernt werden sollen.

IfSpec

Schnittstellenspezifikation für die Bindungshandles, die aus der Namensdienstdatenbank entfernt werden sollen. Ein NULL-Parameterwert gibt an, bindungshandles nicht zu exportieren (nur Objekt-UUIDs sollen nicht exportiert werden).

ObjectUuidVec

Zeiger auf einen Vektor von Objekt-UUIDs, die der Server nicht mehr anbieten möchte. Die Anwendung erstellt diesen Vektor. Ein NULL-Wert gibt an, dass keine Objekt-UUIDs zum Aufheben des Exportes vorhanden sind (nur Bindungshandles sollen nicht exportiert werden).

Rückgabewert

Wert Bedeutung
RPC_S_OK
Der Aufruf war erfolgreich.
RPC_S_INVALID_VERS_OPTION
Die Versionsoption ist ungültig.
RPC_S_INVALID_NAME_SYNTAX
Die Namenssyntax ist ungültig.
RPC_S_UNSUPPORTED_NAME_SYNTAX
Die Namenssyntax wird nicht unterstützt.
RPC_S_INCOMPLETE_NAME
Der Name ist unvollständig.
RPC_S_ENTRY_NOT_FOUND
Der Name-Dienst-Eintrag wurde nicht gefunden.
RPC_S_NAME_SERVICE_UNAVAILABLE
Der Namensdienst ist nicht verfügbar.
RPC_S_INTERFACE_NOT_FOUND
Die Schnittstelle wurde nicht gefunden.
RPC_S_NOT_ALL_OBJS_UNEXPORTED
Nicht alle Objekte wurden nicht exportiert.
 
Hinweis Eine Liste der gültigen Fehlercodes finden Sie unter RPC-Rückgabewerte.
 

Hinweise

Die RpcNsBindingUnexport-Funktion ermöglicht es einer Serveranwendung, die Bindungshandles und Objekt-UUIDs von Ressourcen aus einem Namensdienstdatenbankeintrag zu entfernen. Eine Serveranwendung kann den Export der angegebenen Schnittstelle und der angegebenen Objekte in einem einzelnen Aufruf von RpcNsBindingUnexport aufheben oder die Exporte separat aufheben. Nur die Bindungshandles, die der Schnittstellen-UUID entsprechen, und die Haupt- und Nebenschnittstellenversionsnummern im IfSpec-Parameter sind nicht exportiert. Verwenden Sie die RpcNsMgmtBindingUnexport-Funktion , um mehrere Versionen einer Schnittstelle zu entfernen.

Ab Windows 2000 verwendet die RPC-Laufzeitumgebung active Directory als Namensdienstdatenbank. Dies bedeutet, dass autorisierte nicht exportierte Einträge sowohl aus dem lokalen Cache als auch aus dem Active Directory entfernt werden. Nicht autorisierte Nichtexporte werden nur aus dem lokalen Cache entfernt. Weitere Informationen zu Autorisierung und Access Control Listen finden Sie unter Access Control im Abschnitt Sicherheit des Platform Software Development Kit (SDK).

Wenn RpcNsBindingUnexport keine Bindungshandles für die angegebene Schnittstelle findet, gibt die Funktion einen RPC_S_INTERFACE_NOT_FOUND status Code zurück und hebt den Export der Objekt-UUIDs nicht auf, falls angegeben.

Wenn ein oder mehrere Bindungshandles für die angegebene Schnittstelle gefunden und ohne Fehler nicht exportiert werden, hebt RpcNsBindingUnexport die angegebenen Objekt-UUIDs auf, falls vorhanden.

Wenn eine der angegebenen Objekt-UUIDs nicht gefunden wurde, gibt RpcNsBindingUnexport den RPC_S_NOT_ALL_OBJS_UNEXPORTED status Code zurück.

Zusätzlich zum Aufrufen von RpcNsBindingUnexport sollte ein Server auch die RpcEpUnregister-Funktion aufrufen, um die Registrierung der Endpunkte aufzuheben, die der Server zuvor bei der lokalen Endpunktzuordnungsdatenbank registriert hat.

Nach der Erstellung wird ein Servereintrag auch dann beibehalten, wenn alle Bindungshandles und UUIDs entfernt werden. Ein Servereintrag muss über mindestens ein Bindungshandle verfügen, um vorhanden zu sein. Daher hat das Exportieren nur von UUIDs in einen nicht vorhandenen Eintrag keine Auswirkung, und das Aufheben des Exports aller Bindungshandles löscht den Eintrag.

Verwenden Sie RpcNsBindingUnexport mit Bedacht. Um einen automatisch aktivierten Server verfügbar zu halten, müssen Sie seine Bindungshandles in der Name-Dienst-Datenbank zwischen den Zeiten belassen, zu denen Serverprozesse aktiviert werden. Bei dynamischen Bindungen kann das Active Directory jedoch so groß werden, dass es nicht verwaltbar ist, wenn Sie die Exportbindungshandles nicht aufheben.

Denken Sie daher vor dem Aufrufen dieser Funktion daran, wie lange der Server voraussichtlich nicht verfügbar ist, und welche Bindungsart verwendet wird. Wenn Sie statische Bindungen verwenden, reservieren Sie diese Funktion für den Fall, dass ein Server für längere Zeit nicht verfügbar ist, z. B. wenn er dauerhaft aus dem Dienst entfernt wird.

Hinweis Namensdienstdatenbanken sind relativ stabil. In replizierten Namensdienstdatenbanken führt die häufige Verwendung der Funktionen RpcNsBindingExport und RpcNsBindingUnexport dazu, dass die Name-Dienst-Datenbank denselben Eintrag wiederholt entfernt und ersetzt, was zu Leistungsproblemen führen kann.
 

Hinweis

Der rpcnsi.h-Header definiert RpcNsBindingUnexport 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
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile rpcnsi.h (rpc.h einschließen)
Bibliothek Rpcns4.lib
DLL Rpcns4.dll

Weitere Informationen

RpcEpUnregister

RpcNsBindingExport