RpcNsBindingImportNext-Funktion (rpcnsi.h)

Die RpcNsBindingImportNext-Funktion sucht eine Schnittstelle (und optional ein Objekt aus einer Name-Dienst-Datenbank) und gibt, falls gefunden, ein Bindungshandle eines kompatiblen Servers zurück.

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

Syntax

RPC_STATUS RpcNsBindingImportNext(
  RPC_NS_HANDLE      ImportContext,
  RPC_BINDING_HANDLE *Binding
);

Parameter

ImportContext

Name-Service-Handle, das von der RpcNsBindingImportBegin-Funktion zurückgegeben wird.

Binding

Gibt einen Zeiger auf ein clientkompatibles Serverbindungshandle für einen Server zurück.

Rückgabewert

Wert Bedeutung
RPC_S_OK
Der Aufruf war erfolgreich.
RPC_S_NO_MORE_BINDINGS
Keine Bindungen mehr.
RPC_S_NAME_SERVICE_UNAVAILABLE
Der Namensdienst ist nicht verfügbar.
 
Hinweis Eine Liste der gültigen Fehlercodes finden Sie unter RPC-Rückgabewerte.
 

Hinweise

Die RpcNsBindingImportNext-Funktion gibt ein clientkompatibles Serverbindungshandle für einen Server zurück, der die Schnittstellen- und Objekt-UUID bietet, die durch die Parameter IfSpec und ObjUuid in der RpcNsBindingImportBegin-Funktion angegeben werden. Die Funktion kommuniziert nur mit der Name-Dienst-Datenbank, nicht direkt mit Servern.

Ab Windows 2000 verwendet die RPC-Umgebung active Directory als Name-Dienst-Datenbank, und die Reihenfolge, in der die Laufzeitumgebung die Suche ausführt, lautet wie folgt:

  • Suchen Sie im lokalen Cache. Wenn kein Eintrag vorhanden ist,
  • Suchen Sie im Active Directory. Wenn kein Eintrag vorhanden ist,
  • Senden von Broadcastanforderungen an alle anderen Verzeichnisdienste in der Domäne.

    Beachten Sie, dass, wenn der Eintrag im Active Directory vorhanden ist, dem Eintrag jedoch keine Informationen zugeordnet sind, die Laufzeitumgebung diese Übertragungsanforderung nicht ausgibt.

Das zurückgegebene kompatible Bindungshandle enthält immer eine Objekt-UUID, deren Wert vom ObjUuid-Parameter in der RpcNsBindingImportBegin-Funktion abhängt. Wenn eine Objekt-UUID ungleich NULL angegeben wurde, enthält das zurückgegebene Bindungshandle diese Objekt-UUID. Wenn jedoch eine NULL-Objekt-UUID oder ein NULL-Wert angegeben wurde, ist die zurückgegebene Objekt-UUID das Ergebnis der folgenden Möglichkeiten:
  • Wenn der Server keine Objekt-UUIDs exportiert hat, enthält das zurückgegebene Bindungshandle eine Null-Objekt-UUID.
  • Wenn der Server eine Objekt-UUID exportiert hat, enthält das zurückgegebene Bindungshandle diese Objekt-UUID.
  • Wenn der Server mehrere Objekt-UUIDs exportiert hat, enthält das zurückgegebene Bindungshandle eine der Objekt-UUIDs. Der Import-Next-Vorgang wählt die zurückgegebene Objekt-UUID auf nicht deterministische Weise aus. Daher kann eine andere Objekt-UUID für jedes kompatible Bindungshandle von einem einzelnen Servereintrag zurückgegeben werden.
Die RpcNsBindingImportNext-Funktion wählt ein Serverbindungshandle aus den gefundenen kompatiblen Bindungshandles aus und gibt es zurück. Die Clientanwendung kann dieses Bindungshandle verwenden, um einen Remoteprozeduraufruf an den Server zu versuchen. Wenn der Client keine Beziehung mit dem Server herstellt, kann er RpcNsBindingImportNext erneut aufrufen.

Jedes Mal, wenn der Client RpcNsBindingImportNext aufruft, gibt die Funktion ein weiteres Serverbindungshandle zurück. Die zurückgegebenen Bindungshandles sind ungeordnet. Eine Clientanwendung ruft die RpcNsBindingInqEntryName-Funktion auf, um die Name-Dienst-Datenbank im Eintragsnamen abzurufen, aus dem das Bindungshandle stammt. Wenn die Suche das Ende der Name-Dienst-Datenbank erreicht, gibt RpcNsBindingInqEntryName eine status von RPC_S_NO_MORE_BINDINGS und den Bindungsparameterwert NULL zurück.

Die RpcNsBindingImportNext-Funktion reserviert Speicher für die Daten, auf die vom zurückgegebenen Binding-Parameter verwiesen wird. Wenn eine Clientanwendung das Bindungshandle abgeschlossen hat, muss sie RpcBindingFree aufrufen, um die Zuordnung des Speichers aufzuheben. Jeder Aufruf von RpcNsBindingImportNext erfordert einen entsprechenden Aufruf von RpcBindingFree.

Der Client ist für den Aufruf der RpcNsBindingImportDone-Funktion verantwortlich, die den Importkontext löscht. Der Client ruft auch RpcNsBindingImportDone auf, bevor rpcNsBindingImportBegin aufgerufen wird, um eine neue Suche nach kompatiblen Servern zu starten. Da die Reihenfolge der zurückgegebenen Bindungshandles für jede neue Suche unterschiedlich ist, kann die Reihenfolge, in der Bindungshandles an eine Anwendung zurückgegeben werden, bei jeder Ausführung der Anwendung unterschiedlich sein.

Anforderungen

   
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

RpcBindingFree

RpcNsBindingImportBegin

RpcNsBindingImportDone

RpcNsBindingInqEntryName

RpcNsBindingLookupBegin

RpcNsBindingLookupDone

RpcNsBindingLookupWeiter

RpcNsBindingSelect