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