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 Funktion RpcNsBindingExport stellt einen Namensdienstdatenbankeintrag mit mehreren Bindungshandles und mehreren Objekten für einen Server her.
Syntax
RPC_STATUS RpcNsBindingExportW(
unsigned long EntryNameSyntax,
RPC_WSTR EntryName,
RPC_IF_HANDLE IfSpec,
RPC_BINDING_VECTOR *BindingVec,
UUID_VECTOR *ObjectUuidVec
);
Die Parameter
EntryNameSyntax
Syntax von 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
Zeiger auf den Eintragsnamen, in den Bindungshandles und Objekt-UUIDs exportiert werden. Sie können keine NULL- oder leere Zeichenfolge angeben. Der Client und der Server müssen beide denselben Eintragsnamen verwenden.
IfSpec
Stub-generierte Datenstruktur, die die zu exportierende Schnittstelle angibt. Ein NULL-Wert gibt an, dass es keine Bindungshandles zum Exportieren gibt (nur Objekt-UUIDs werden exportiert werden) und BindingVec wird ignoriert.
BindingVec
Zeiger auf Serverbindungen, die exportiert werden sollen. Ein Nullwert gibt an, dass keine Bindungshandles zum Exportieren vorhanden sind (nur Objekt-UUIDs werden exportiert).
ObjectUuidVec
Zeiger auf einen Vektor von Objekt-UUIDs, die vom Server angeboten werden. Die Serveranwendung erstellt diesen Vektor. Ein Nullwert gibt an, dass keine Objekt-UUIDs zum Exportieren vorhanden sind (es werden nur Bindungshandles exportiert).
Rückgabewert
| Wert | Bedeutung |
|---|---|
|
Der Aufruf war erfolgreich. |
|
Es gab nichts zu exportieren. |
|
Das Bindungshandle war ungültig. |
|
Dies war die falsche Art von Bindung für den Vorgang. |
|
Die Namenssyntax ist ungültig. |
|
Die Namenssyntax wird nicht unterstützt. |
|
Der Name ist unvollständig. |
|
Keine Berechtigung für den Namendienstvorgang. |
|
Der Namensdienst ist nicht verfügbar. |
Bemerkungen
Mit der Funktion RpcNsBindingExport kann eine Serveranwendung öffentlich eine Schnittstelle in der Namensdienstdatenbank für die Verwendung durch eine beliebige Clientanwendung anbieten.
Ab Windows 2000 verwendet die RPC-Laufzeitumgebung active Directory als Name-Service-Datenbank. Dies bedeutet, dass autorisierte exportierte Einträge im Namensdienst beibehalten werden und auch nach dem Neustart sichtbar sind. Nicht autorisierte Exporte bleiben nicht erhalten. Weitere Informationen zu Autorisierungs- und Zugriffssteuerungslisten finden Sie im Abschnitt "Sicherheit" des Platform Software Development Kit (SDK).
Zum Exportieren einer Schnittstelle ruft die Serveranwendung die RpcNsBindingExport-Routine mit einer Schnittstelle auf, und die Serverbindung behandelt einen Client für den Zugriff auf den Server. Eine Serveranwendung ruft auch die RpcNsBindingExport-Funktion auf, um öffentlich das Objekt UUID(en) von Ressourcen anzubieten, die es (sofern vorhanden) in der Namensdienstdatenbank anbietet.
Ein Server kann Schnittstellen und Objekte in einem einzigen Aufruf von RpcNsBindingExport exportieren oder separat exportieren. Wenn der durch EntryName angegebene Name-Service-Datenbankeintrag nicht vorhanden ist, versucht RpcNsBindingExport , ihn zu erstellen. In diesem Fall muss die Serveranwendung über die Berechtigung zum Erstellen des Eintrags verfügen. Zusätzlich zum Aufrufen von RpcNsBindingExport muss sich auch ein Server, der die Funktion "RpcServerUseAllProtseqs " oder "RpcServerUseProtseq " aufgerufen hat, auch bei der lokalen Endpunktzuordnungsdatenbank registrieren, indem entweder "RpcEpRegister" oder "RpcEpRegisterNoReplace" aufgerufen wird.
Ein Server ist nicht erforderlich, um eine seiner Schnittstellen in die Name-Service-Datenbank zu exportieren. Wenn ein Server nicht exportiert wird, können nur Clients, die privat wissen, dass die Bindungsinformationen des Servers auf seine Schnittstellen zugreifen können. Beispielsweise kann ein Client, der über die zum Erstellen einer Zeichenfolgenbindung erforderlichen Informationen verfügt, den RpcBindingFromStringBinding aufrufen, um ein Bindungshandle zum Erstellen von Remoteprozeduraufrufen an einen Server zu erstellen.
Vor dem Aufrufen von RpcNsBindingExport muss ein Server folgendes ausführen:
- Registrieren Sie eine oder mehrere Protokollsequenzen mit der lokalen RPC-Laufzeitbibliothek, indem Sie eine der folgenden Funktionen aufrufen:
- Abrufen einer Liste von Serverbindungen durch Aufrufen der RpcServerInqBindings-Funktion .
Wenn ein Server mehrmals in denselben Namensdienstdatenbankeintrag exportiert wird, fügen die zweiten und nachfolgenden Aufrufe von RpcNsBindingExport die Bindungsinformationen und Objekt-UUIDs hinzu, wenn diese Daten sich von den Bindungsinformationen unterscheiden, die sich bereits im Servereintrag befinden. Vorhandene Daten werden nicht aus dem Eintrag entfernt.
Um Bindungshandles und Objekt-UUIDs aus der Namensdienstdatenbank zu entfernen, ruft eine Serveranwendung die Funktion RpcNsBindingUnexport auf.
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.
Hinweis
Der rpcnsi.h-Header definiert RpcNsBindingExport 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ützter Client | Windows 2000 Professional [nur Desktop-Apps] |
| Mindestanforderungen für unterstützte Server | Windows 2000 Server [nur Desktop-Apps] |
| Zielplattform | Fenster |
| Header | rpcnsi.h (include Rpc.h) |
| Library | Rpcns4.lib |
| DLL | Rpcns4.dll |