Pipes (RPC)
Der Pipetypkonstruktor ist ein äußerst effizienter Mechanismus zum Übergeben großer Datenmengen oder einer beliebigen Menge an Daten, die nicht alle gleichzeitig im Arbeitsspeicher verfügbar sind. Mithilfe einer Pipe verarbeitet die RPC-Laufzeit die tatsächliche Datenübertragung, sodass der Mehraufwand für wiederholte Remoteprozeduraufrufe entfällt.
Nachdem ein Client eine Remoteprozedur mit einem Pipeparameter aufgerufen hat, geben Client und Server Schleifen ein, um Daten zu übertragen. Die Daten können auf dem Client oder dem Server erstellt werden. In beiden Fällen muss die Datenmenge (in Bytes) nicht im Voraus bekannt sein. Die Daten können inkrementell erstellt oder genutzt werden. Während der Datenübertragungsschleife ruft der Server Stubroutinen auf, die einen Datenpuffer laden oder entladen. Der Client ruft vom Programmierer definierte Prozeduren auf, um Puffer zuzuordnen, Daten in die Puffer zu laden und daten aus den Puffern zu entladen.
Dieser Abschnitt bietet eine Übersicht über die Verwendung von Pipes für Remoteprozeduraufrufe. Die Übersicht wird in den folgenden Themen dargestellt:
- Grundlegende Pipeterminologie
- Der Pipezustand
- Definieren von Pipes in IDL-Dateien
- Clientseitige Pipeimplementierungen
- Serverseitige Pipeimplementierungen
- Regeln für mehrere Pipes
- Kombinieren von Pipe- und Nonpipe-Parametern
Weitere Informationen zur Pipesyntax und zu Einschränkungen finden Sie unter pipe in der MIDL-Sprachreferenz. Das PIPES-Beispielprogramm im RPC-Verzeichnis mit Den SDK-Beispielen (Platform Software Development Kit) \ veranschaulicht die Verwendung von [ In-Out-Pipes ] zum Übertragen von Daten zwischen einem Client und einem Server.