RpcSmAllocate 関数 (rpcndr.h)
RpcSmAllocate 関数は、RPC スタブ メモリ管理機能内でメモリを割り当て、割り当てられたメモリまたは NULL へのポインターを返します。
構文
void * RpcSmAllocate(
size_t Size,
RPC_STATUS *pStatus
);
パラメーター
Size
割り当てるメモリのサイズ (バイト単位)。
pStatus
返された状態へのポインター。
戻り値
値 | 説明 |
---|---|
|
呼び出しは成功しました。 |
|
システムがメモリ不足です。 |
解説
RpcSmAllocate ルーチンを使用すると、アプリケーションは RPC スタブメモリ管理環境内でメモリを割り当てることができます。 RpcSmAllocate を呼び出す前に、メモリ管理環境が既に確立されている必要があります。 スタブ内で呼び出されるメモリ管理の場合、サーバー スタブ自体が必要な環境を確立する可能性があります。 詳細については、「 RpcSmEnableAllocate」を参照してください。 RpcSmAllocate を使用してスタブから呼び出されないメモリを割り当てる場合、アプリケーションは RpcSmEnableAllocate を呼び出して、必要なメモリ管理環境を確立する必要があります。
RpcSmAllocate ルーチンは、呼び出しが成功した場合、割り当てられたメモリへのポインターを返します。 それ以外の場合は、 NULL が返されます。
スタブによってメモリ管理が確立されると、 RpcSmAllocate によって割り当てられたメモリが解放されます。 アプリケーションは 、RpcSmFree を呼び出して呼び出し元のスタブに戻る前に、このようなメモリを解放できます。
これに対し、アプリケーションがメモリ管理を確立するときは、割り当てられたメモリを解放する必要があります。 これを行う場合は、 RpcSmFree または RpcSmDisableAllocate を呼び出します。
スタブ メモリ管理環境内で同じメモリを管理するために、複数のスレッドで RpcSmAllocate と RpcSmFree を呼び出すことができます。 この場合、スレッドは同じスタブ メモリ管理スレッド ハンドルを共有する必要があります。 アプリケーションは、 RpcSmGetThreadHandle と RpcSmSetThreadHandle を呼び出して、スレッド ハンドルをスレッドからスレッド に渡します。
詳細については、「 メモリ管理」を参照してください。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | rpcndr.h (Rpc.h を含む) |
Library | Rpcrt4.lib |
[DLL] | Rpcrt4.dll |