パイプ (RPC)
パイプ型コンストラクターは、大量のデータ、または一度にすべてのメモリで使用できるわけではない任意の量のデータを渡すための非常に効率的なメカニズムです。 RPC ランタイムは、パイプを使用して実際のデータ転送を処理し、リモート プロシージャ呼び出しの繰り返しに関連するオーバーヘッドを排除します。
クライアントがパイプ パラメーターを持つリモート プロシージャを呼び出すと、クライアントとサーバーはループを入力してデータを転送します。 データは、クライアントまたはサーバーで生成できます。 いずれの場合も、データの量 (バイト単位) を事前に把握しておく必要はありません。 データは、段階的に生成または使用できます。 データ転送ループでは、サーバーはデータのバッファーをロードまたはアンロードするスタブ ルーチンを呼び出します。 クライアントはプログラマ定義のプロシージャを呼び出して、バッファーの割り当て、バッファーへのデータの読み込み、バッファーからのデータのアンロードを行います。
このセクションでは、リモート プロシージャ コールにパイプを使用する方法の概要について説明します。 ここでは、次のトピックの概要について説明します。
- 基本的なパイプ用語
- パイプ状態 を する
- IDL ファイル内のパイプの定義
- Client-Side パイプの実装
- Server-Side パイプの実装
- 複数のパイプ の 規則
- パイプ パラメーターとパイプ以外のパラメーターの組み合わせ の
パイプの構文と制限の詳細については、「MIDL 言語リファレンス パイプ」を参照してください。 pc ディレクトリ\rプラットフォーム ソフトウェア開発キット (SDK) サンプルの PIPES サンプル プログラムでは、[in,out] パイプを使用して、クライアントとサーバーの間でデータを転送する方法を示します。