_ _ RPC-BINDUNGSHANDLE
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 Clientbindungshandle betrachtet.
Ein Serverbindungshandle enthält die Informationen, die ein Client benötigt, um eine Beziehung mit 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 verwendet werden, um einen Remoteprozeduraufruf durchzuführen. 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 RpcBinding * _- und _RpcNsBinding-Funktionen * geben den Statuscode RPC _ S WRONG KIND OF BINDING _ _ _ _ zurück, wenn eine Anwendung den falschen Bindungshandletyp bereitstellt.
Eine Anwendung kann ein einzelnes Bindungshandle für mehrere Ausführungsthreads freigeben. Die RPC-Laufzeitbibliothek verwaltet gleichzeitige Remoteprozeduraufrufe, die ein einzelnes Bindungshandle verwenden. Die Anwendung ist jedoch für die Steuerung der Parallelität von Bindungshandle für Vorgänge verantwortlich, die ein Bindungshandle ändern. Zu diesen Vorgängen gehören die folgenden Routinen:
Wenn eine Anwendung beispielsweise ein Bindungshandle für zwei Ausführungsthreads freigibt und den Bindungshandle-Endpunkt in einem der Threads zurücksetzt, indem RpcBindingResetaufgerufen wird, sind die Ergebnisse nicht definiert. Das Bindungshandle für den anderen Thread kann ebenfalls zurückgesetzt werden, oder der Vorgang schlägt fehl, oder der Prozess stürzt ab. Ein häufiger Fehler ist das Freigeben eines Bindungshandle, während ein Aufruf dafür 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 so entwerfen, dass sie eine Kopie eines Bindungshandle erstellt, indem Sie RpcBindingCopyaufrufen. In diesem Fall hat ein Vorgang zum ersten Bindungshandle keine Auswirkungen auf das zweite Bindungshandle.
Routinen, die ein Bindungshandle als Parameter erfordern, zeigen den Datentyp RPC _ BINDING _ HANDLE an. Bindungshandleparameter werden als Wert übergeben.
Requirements (Anforderungen)
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) |
Windows 2000 Professional [nur Desktop-Apps] |
| Unterstützte Mindestversion (Server) |
Windows 2000 Server [nur Desktop-Apps] |
| Header |
|