RPC_BINDING_HANDLE

Der RPC_BINDING_HANDLE-Datentyp deklariert ein Bindungshandle, das Informationen enthält, die die RPC-Laufzeitbibliothek für den Zugriff auf Bindungsinformationen verwendet.

typedef I_RPC_HANDLE RPC_BINDING_HANDLE;

Bemerkungen

Die Laufzeitbibliothek verwendet Bindungsinformationen, um eine Client-Server-Beziehung herzustellen, die die Ausführung von Remoteprozeduraufrufen ermöglicht. Basierend auf dem Kontext, in dem ein Bindungshandle erstellt wird, wird es als Serverbindungshandle oder als Clientbindungshandle betrachtet.

Ein Serverbindungshandle enthält die Informationen, die für einen Client erforderlich sind, um eine Beziehung zu einem bestimmten Server herzustellen. Eine beliebige Anzahl von RPC-API-Laufzeitroutinen gibt ein Serverbindungshandle zurück, das zum Ausführen eines Remoteprozeduraufrufs verwendet werden kann.

Ein Clientbindungshandle kann nicht zum Ausführen eines Remoteprozeduraufrufs verwendet werden. Die RPC-Laufzeitbibliothek erstellt und stellt ein Clientbindungshandle für eine aufgerufene Serverprozedur (auch als Server-Manager-Routine bezeichnet) als RPC_BINDING_HANDLE-Parameter bereit. Das Clientbindungshandle enthält Informationen zum aufrufenden Client.

Die Funktionen RpcBinding* und RpcNsBinding* geben den status Code RPC_S_WRONG_KIND_OF_BINDING zurück, wenn eine Anwendung den falschen Bindungshandletyp bereitstellt.

Eine Anwendung kann ein einzelnes Bindungshandle über mehrere Ausführungsthreads hinweg gemeinsam nutzen. Die RPC-Laufzeitbibliothek verwaltet gleichzeitige Remoteprozeduraufrufe, die ein einzelnes Bindungshandle verwenden. Die Anwendung ist jedoch für die Bindungshandle-Parallelitätssteuerung für Vorgänge verantwortlich, die ein Bindungshandle ändern. Diese Vorgänge umfassen die folgenden Routinen:

Wenn eine Anwendung beispielsweise ein Bindungshandle über zwei Ausführungsthreads hinweg teilt und den Bindungshandle-Endpunkt in einem der Threads zurücksetzt, indem RpcBindingReset aufgerufen wird, werden die Ergebnisse nicht definiert. Das Bindungshandle für den anderen Thread kann auch zurückgesetzt werden, oder der Vorgang schlägt fehl, oder der Prozess stürzt ab. Ein häufiger Fehler ist das Freigeben eines Bindungshandles, während ein Aufruf ausgeführt wird. Dies stürzt in der Regel den aufrufenden Prozess ab.

Wenn Sie keine Parallelität wünschen, können Sie eine Anwendung entwerfen, um eine Kopie eines Bindungshandles zu erstellen, indem Sie RpcBindingCopy aufrufen. In diesem Fall hat ein Vorgang mit dem ersten Bindungshandle keine Auswirkungen auf das zweite Bindungshandle.

Routinen, die ein Bindungshandle als Parameter erfordern, zeigen einen Datentyp von RPC_BINDING_HANDLE an. Bindungshandleparameter werden nach Wert übergeben.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Rpcdce.h (einschließen von Rpc.h)