次の方法で共有


Client-Side パイプの実装

クライアント アプリケーションは、次の手順を実装する必要があります。このプロシージャは、クライアント スタブがデータ転送中に呼び出します。

  • プル プロシージャ (入力パイプ用)
  • プッシュ プロシージャ (出力パイプ用)
  • 転送データのバッファーを割り当てるアロケーション プロシージャ

これらのプロシージャはすべて、MIDL で生成されたヘッダー ファイルで指定された引数を使用する必要があります。 さらに、クライアント アプリケーションには、データを検索または配置する場所を識別するための状態変数が必要です。

アロケーションプロシージャは、必要に応じて単純または複雑にすることもできます。 たとえば、スタブが関数を呼び出すたびに同じバッファーへのポインターを返したり、毎回異なる量のメモリを割り当てたりすることができます。 データが既に適切な形式 (パイプ要素の配列など) である場合は、アロケーション プロシージャと pull プロシージャを調整して、データが既に含まれているバッファーを割り当てることができます。 その場合、プル プロシージャは空のルーチンである可能性があります。

バッファーの割り当てはバイト単位である必要があります。 一方、プッシュ プロシージャとプル プロシージャは、サイズ (バイト単位) が定義された方法に依存する要素を操作します。

このセクションでは、次のセクションで入力パイプと出力パイプのクライアント実装について説明します。