RpcSmAllocate 函式 (rpcndr.h)

RpcSmAllocate 函式會在 RPC 存根記憶體管理函式內配置記憶體,並傳回已配置記憶體或Null的指標。

語法

void * RpcSmAllocate(
  size_t     Size,
  RPC_STATUS *pStatus
);

參數

Size

要配置的記憶體大小,以位元組為單位。

pStatus

傳回狀態的指標。

傳回值

意義
RPC_S_OK
呼叫成功。
RPC_S_OUT_OF_MEMORY
系統記憶體不足。
 
注意 如需有效錯誤碼的清單,請參閱 RPC 傳回值
 

備註

RpcSmAllocate常式可讓應用程式在 RPC 存根記憶體管理環境中配置記憶體。 在呼叫 RpcSmAllocate之前,必須已經建立記憶體管理環境。 針對存根內呼叫的記憶體管理,伺服器存根本身可能會建立必要的環境。 如需詳細資訊,請參閱 RpcSmEnableAllocate。 使用 RpcSmAllocate 配置未從存根呼叫的記憶體時,應用程式必須呼叫 RpcSmEnableAllocate 來建立必要的記憶體管理環境。

如果呼叫成功, RpcSmAllocate 常式會傳回所配置記憶體的指標。 否則會傳回 Null

當存根建立記憶體管理時,它會釋放 RpcSmAllocate配置的任何記憶體。 應用程式可以先釋放這類記憶體,再呼叫 RpcSmFree返回呼叫存根。

相反地,當應用程式建立記憶體管理時,它必須釋放配置的任何記憶體。 其方式是呼叫 RpcSmFreeRpcSmDisableAllocate

若要在存根記憶體管理環境中管理相同的記憶體,多個執行緒可以呼叫 RpcSmAllocateRpcSmFree。 在此情況下,執行緒必須共用相同的存根記憶體管理執行緒控制碼。 應用程式會呼叫 RpcSmGetThreadHandleRpcSmSetThreadHandle,將執行緒控制碼從執行緒傳遞至執行緒。

如需詳細資訊,請參閱 記憶體管理

需求

   
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows 2000 Server [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 rpcndr.h (包含 Rpc.h)
程式庫 Rpcrt4.lib
Dll Rpcrt4.dll

另請參閱

RpcSmDisableAllocate

RpcSmEnableAllocate

RpcSmFree

RpcSmGetThreadHandle

RpcSmSetThreadHandle