Pipes (RPC)
Der Pipetypkonstruktor ist ein hocheffizienter Mechanismus zum Übergeben großer Datenmengen oder einer beliebigen Datenmenge, die nicht alle gleichzeitig im Arbeitsspeicher verfügbar sind. Bei Verwendung einer Pipe übernimmt die RPC-Laufzeit die tatsächliche Datenübertragung, wodurch der Mit wiederholten Remoteprozeduraufrufen verbundene Mehraufwand beseitigt wird.
Nachdem ein Client eine Remoteprozedur mit einem Pipeparameter aufgerufen hat, geben der Client und der Server Schleifen ein, um Daten zu übertragen. Die Daten können auf dem Client oder server erzeugt werden. So oder so muss die Datenmenge (in Bytes) nicht im Voraus bekannt sein. Die Daten können inkrementell erzeugt oder genutzt werden. In der Datenübertragungsschleife ruft der Server Stubroutinen auf, die einen Datenpuffer laden oder entladen. Der Client ruft vom Programmierer definierte Prozeduren auf, um Puffer zuzuweisen, 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. Es bietet die Übersicht in den folgenden Themen:
- Essential Pipe-Terminologie
- Der Rohrzustand
- Definieren von Pipes in IDL-Dateien
- Clientseitige Pipeimplementierung
- Serverseitige Pipeimplementierung
- Regeln für mehrere Rohre
- 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 Verzeichnis "Platform Software Development Kit (SDK)"\rpc" veranschaulicht, wie [in,out] Pipes zum Übertragen von Daten zwischen einem Client und einem Server verwendet werden.