RpcNsBindingUnexportW-Funktion (rpcnsi.h)
Die RpcNsBindingUnexport-Funktion entfernt die Bindungshandles für eine Schnittstelle und Objekte aus einem Eintrag in der name-service-Datenbank.
Syntax
RPC_STATUS RpcNsBindingUnexportW(
unsigned long EntryNameSyntax,
RPC_WSTR 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, keine Bindungshandles aufzuheben (nur Objekt-UUIDs müssen 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 dürfen nicht exportiert werden).
Rückgabewert
Wert | Bedeutung |
---|---|
|
Der Aufruf war erfolgreich. |
|
Die Versionsoption ist ungültig. |
|
Die Namenssyntax ist ungültig. |
|
Die Namenssyntax wird nicht unterstützt. |
|
Der Name ist unvollständig. |
|
Der Name-Dienst-Eintrag wurde nicht gefunden. |
|
Der Namensdienst ist nicht verfügbar. |
|
Die Schnittstelle wurde nicht gefunden. |
|
Nicht alle Objekte werden nicht exportiert. |
Hinweise
Mit der RpcNsBindingUnexport-Funktion kann eine Serveranwendung die Bindungshandles und Objekt-UUIDs von Ressourcen aus einem Namensdienstdatenbankeintrag entfernen. Eine Serveranwendung kann den Export der angegebenen Schnittstelle und der angegebenen Objekte in einem einzelnen Aufruf von RpcNsBindingUnexport aufheben oder sie separat aufheben. Nur die Bindungshandles, die mit der Schnittstellen-UUID und den Haupt- und Nebenschnittstellenversionsnummern im IfSpec-Parameter übereinstimmen, werden nicht exportiert. Verwenden Sie die RpcNsMgmtBindingUnexport-Funktion , um mehrere Versionen einer Schnittstelle zu entfernen.
Ab Windows 2000 verwendet die RPC-Laufzeitumgebung Active Directory als Name-Dienst-Datenbank. 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 datenbank endpoint-map registriert hat.
Nach der Erstellung bleibt ein Servereintrag erhalten, auch wenn alle Bindungshandles und UUIDs entfernt werden. Für einen Servereintrag muss mindestens ein Bindungshandle vorhanden sein. Daher hat das Exportieren von nur UUIDs in einen nicht vorhandenen Eintrag keine Auswirkungen, und das Aufheben des Exports aller Bindungshandles löscht den Eintrag.
Verwenden Sie RpcNsBindingUnexport umsichtig. Um einen automatisch aktivierten Server verfügbar zu halten, müssen Sie dessen Bindungshandles in der Name-Dienst-Datenbank zwischen den Zeiten belassen, zu denen Serverprozesse aktiviert werden. Bei dynamischen Bindungen kann die Active Directory-Instanz jedoch so groß werden, dass sie nicht verwaltbar ist, wenn Sie die Bindungshandles nicht aufheben.
Beachten Sie daher, bevor Sie diese Funktion aufrufen, wie lange Sie erwarten, dass der Server nicht verfügbar ist, und welche Bindungsart verwendet wird. Wenn Sie statische Bindungen verwenden, reservieren Sie diese Funktion für, wenn Sie erwarten, dass ein Server für längere Zeit nicht verfügbar ist, z. B. wenn er endgültig aus dem Dienst entfernt wird.
Hinweis
Der rpcnsi.h-Header definiert RpcNsBindingUnexport als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante 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 | rpcnsi.h (include Rpc.h) |
Bibliothek | Rpcns4.lib |
DLL | Rpcns4.dll |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für