Share via


midl_user_allocate属性

midl_user_allocate関数は、クライアント アプリケーションとサーバー アプリケーションがメモリを割り当てるために提供する関数です。

void __RPC_FAR * __RPC_API midl_user_allocate (size_t cBytes);

パラメーター

cBytes

割り当てるバイト数を指定します。

解説

OSF 互換 (/osf) モードでコンパイルする場合を除き、クライアント アプリケーションとサーバー アプリケーションの両方でmidl_user_allocate関数を実装する必要があります。 アプリケーションと生成されたスタブは、ポインターによって参照されるオブジェクトを処理するときに midl_user_allocate を呼び出します。

  • 新しいノードを作成する場合など、サーバー アプリケーションは midl_user_allocate を呼び出してアプリケーションのメモリを割り当てる必要があります。
  • サーバー スタブは ポイントされたデータをサーバー アドレス空間にマーシャリング解除すると、midl_user_allocateを呼び出します。
  • クライアント スタブはout ポインターによって参照されるサーバーからデータのマーシャリングを解除すると、midl_user_allocateを呼び出します。 [in][out]、および [unique] ポインターの場合、クライアント スタブは、入力時に [unique] ポインター値が NULL であり、呼び出し中に NULL 以外の値に変更された場合にのみ、midl_user_allocateを呼び出します。 [unique] ポインターが入力時に NULL 以外の場合、クライアント スタブは関連付けられたデータを既存のメモリに書き込みます。

midl_user_allocateがメモリの割り当てに失敗した場合は、NULL ポインターを返す必要があります。

8 バイトアラインされたポインター midl_user_allocate 返すようにすることをお勧めします。

#include <windows.h>

void __RPC_FAR * __RPC_API midl_user_allocate(size_t cBytes) 
{ 
    return(malloc(cBytes)); 
}

関連項目

割り当てる

配列

配列とポインター

配列とSized-Pointer属性

インチ

midl_user_free

/Osf

Ptr

参考

unique