次の方法で共有


RpcSsAllocate 関数 (rpcndr.h)

RpcSsAllocate 関数は、RPC スタブメモリ管理機能内でメモリを割り当て、割り当てられたメモリまたは NULL へのポインターを返します。

構文

void * RpcSsAllocate(
  size_t Size
);

パラメーター

Size

割り当てるメモリのサイズ (バイト単位)。

戻り値

説明
RPC_S_OUT_OF_MEMORY
システムがメモリ不足です。
 
メモ 有効なエラー コードの一覧については、「 RPC 戻り値」を参照してください。
 

解説

RpcSsAllocate 関数を使用すると、アプリケーションは RPC スタブメモリ管理機能内でメモリを割り当てることができます。 RpcSsAllocate を呼び出す前に、メモリ管理環境が既に確立されている必要があります。 スタブ内で呼び出されるメモリ管理の場合、スタブ自体は通常、必要な環境を確立します。 詳細については、「 メモリ管理」を参照してください。 RpcSsAllocate を使用してスタブから呼び出されないメモリを割り当てる場合、アプリケーションは RpcSsEnableAllocate を呼び出して、必要なメモリ管理環境を確立する必要があります。

RpcSsAllocate ルーチンは、呼び出しが成功した場合に、割り当てられたメモリへのポインターを返します。 それ以外の場合は、例外が発生します。

スタブは、メモリ管理を確立すると、 RpcSsAllocate によって割り当てられたすべてのメモリを解放します。 アプリケーションは、 RpcSsFree を呼び出して呼び出し元のスタブに戻る前に、このようなメモリを解放できます。

これに対し、アプリケーションがメモリ管理を確立するときは、割り当てられたメモリを解放する必要があります。 これを行う場合は、 RpcSsFree または RpcSsDisableAllocate を呼び出します。

スタブ メモリ管理環境内で同じメモリを管理するために、複数のスレッドで RpcSsAllocateRpcSsFree を呼び出すことができます。 この場合、スレッドは同じスタブ メモリ管理スレッド ハンドルを共有する必要があります。 アプリケーションは、 RpcSsGetThreadHandle と RPCSsSetThreadHandle を呼び出すことによって、スレッド間でスレッド ハンドル を渡します

メモRpcSsAllocate ルーチンは、エラー コードを返す RpcSmAllocate とは異なり、例外を発生させます。
 

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー rpcndr.h (Rpc.h を含む)
Library Rpcrt4.lib
[DLL] Rpcrt4.dll

関連項目

RpcSmAllocate

RpcSsDisableAllocate

RpcSsEnableAllocate

RpcSsFree

RpcSsGetThreadHandle

RpcSsSetThreadHandle