ポインターと RPC

ポインターを C 関数パラメーターとして使用することは非常に効率的です。 ポインターは数バイトしかかからず、大量のメモリにアクセスするために使用できます。 ただし、分散アプリケーションでは、クライアントプロシージャとサーバープロシージャは異なるアドレス空間に存在し、異なるコンピュータ上に存在する可能性があります。 そのため、通常、クライアントとサーバーは同じメモリ領域にアクセスできません。

リモート プロシージャのパラメーターの 1 つがオブジェクトへのポインターである場合、クライアントはそのオブジェクトのコピーとそのポインターをサーバーに送信する必要があります。 リモート プロシージャがポインターを介してオブジェクトを変更した場合、サーバーはポインターとその変更されたコピーを返します。

MIDL には、必要なオーバーヘッドの量とアプリケーションのサイズを最小限に抑えるためのポインター属性が用意されています。 このセクションでは、MIDL ポインター属性の目的と使用方法について説明します。 また、RPC アプリケーションでのポインター処理に関する情報も提供します。 次のトピックに分かれています。