Freigeben über


RpcNsBindingUnexportA-Funktion (rpcnsi.h)

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

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 des EntryName-.

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

EntryName

Zeigen Sie auf den Eintragsnamen, von 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, dass keine Bindungshandles nicht mehrexportiert werden sollen (nur Objekt-UUIDs sind nicht exportiert).

ObjectUuidVec

Zeigen Sie auf einen Vektor von Objekt-UUIDs, die der Server nicht mehr anbieten möchte. Die Anwendung erstellt diesen Vektor. Ein Nullwert gibt an, dass keine Objekt-UUIDs zum Aufheben des Exports vorhanden sind (nur Bindungshandles sind nicht exportiert).

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-Service-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 werden nicht exportiert.
 
Hinweis Eine Liste gültiger Fehlercodes finden Sie unter RPC-Rückgabewerte.
 

Bemerkungen

Mit der RpcNsBindingUnexport--Funktion kann eine Serveranwendung die Bindungshandles und Objekt-UUIDs von Ressourcen aus einem Namensdienstdatenbankeintrag entfernen. Eine Serveranwendung kann die angegebene Schnittstelle und Objekte in einem einzigen Aufruf von RpcNsBindingUnexportaufheben oder sie separat aufheben. Nur die Bindungshandles, die mit der Schnittstelle UUID übereinstimmen, und die Haupt- und Nebenschnittstellennummern, die im IfSpec Parameter gefunden werden, werden nichtexportiert. Verwenden Sie die RpcNsMgmtBindingUnexport Funktion, um mehrere Versionen einer Schnittstelle zu entfernen.

Ab Windows 2000 verwendet die RPC-Laufzeitumgebung active Directory als Name-Service-Datenbank. Dies bedeutet, dass sowohl aus dem lokalen Cache als auch aus dem Active Directory eine autorisierte, nicht exportierte Einträge entfernt wird. Nicht autorisierte Nichtexporte werden nur aus dem lokalen Cache entfernt. Weitere Informationen zu Autorisierungs- und Zugriffssteuerungslisten finden Sie 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 Statuscode zurück und hebt den Export der Objekt-UUIDs, falls vorhanden, nicht auf.

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

Wenn eines der angegebenen Objekt-UUIDs nicht gefunden wurde, gibt RpcNsBindingUnexport den RPC_S_NOT_ALL_OBJS_UNEXPORTED Statuscode zurück.

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

Nach der Erstellung wird ein Servereintrag beibehalten, auch wenn alle Bindungshandles und UUIDs entfernt werden. Für einen Servereintrag muss mindestens ein Bindungshandle vorhanden sein. Daher hat das Exportieren nur UUIDs in einen nicht vorhandenen Eintrag keine Auswirkung, und das Aufheben des Exportierens aller Bindungshandles löscht den Eintrag.

Verwenden Sie RpcNsBindingUnexport sorgfältig. Um einen automatisch aktivierten Server verfügbar zu halten, müssen Sie die Bindungshandles in der Namensdienstdatenbank zwischen den Zeiten belassen, in denen Serverprozesse aktiviert werden. Wenn Sie jedoch keine Exportbindungshandles aufheben, kann das Active Directory bei dynamischen Bindungen so groß werden, dass es nicht verwaltbar ist.

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

Hinweis Namensdienstdatenbanken relativ stabil sind. In replizierten Namensdienstdatenbanken führt die häufige Verwendung des RpcNsBindingExport- und RpcNsBindingUnexport Funktionen dazu, dass die Namensdienstdatenbank wiederholt denselben Eintrag entfernt und ersetzt und Leistungsprobleme verursachen kann.
 

Anmerkung

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
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- rpcnsi.h (include Rpc.h)
Library Rpcns4.lib
DLL- Rpcns4.dll

Siehe auch

rpcEpUnregister-

RpcNsBindingExport-