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.
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 |
---|---|
|
Der Aufruf war erfolgreich. |
|
Keine Bindungen mehr. |
|
Der Namensdienst ist nicht verfügbar. |
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.
- 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.
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 |