RpcSmAllocate 函式 (rpcndr.h)
RpcSmAllocate 函式會在 RPC 存根記憶體管理函式內配置記憶體,並傳回已配置記憶體或Null的指標。
語法
void * RpcSmAllocate(
size_t Size,
RPC_STATUS *pStatus
);
參數
Size
要配置的記憶體大小,以位元組為單位。
pStatus
傳回狀態的指標。
傳回值
值 | 意義 |
---|---|
|
呼叫成功。 |
|
系統記憶體不足。 |
注意 如需有效錯誤碼的清單,請參閱 RPC 傳回值。
備註
RpcSmAllocate常式可讓應用程式在 RPC 存根記憶體管理環境中配置記憶體。 在呼叫 RpcSmAllocate之前,必須已經建立記憶體管理環境。 針對存根內呼叫的記憶體管理,伺服器存根本身可能會建立必要的環境。 如需詳細資訊,請參閱 RpcSmEnableAllocate。 使用 RpcSmAllocate 配置未從存根呼叫的記憶體時,應用程式必須呼叫 RpcSmEnableAllocate 來建立必要的記憶體管理環境。
如果呼叫成功, RpcSmAllocate 常式會傳回所配置記憶體的指標。 否則會傳回 Null 。
當存根建立記憶體管理時,它會釋放 RpcSmAllocate配置的任何記憶體。 應用程式可以先釋放這類記憶體,再呼叫 RpcSmFree返回呼叫存根。
相反地,當應用程式建立記憶體管理時,它必須釋放配置的任何記憶體。 其方式是呼叫 RpcSmFree 或 RpcSmDisableAllocate。
若要在存根記憶體管理環境中管理相同的記憶體,多個執行緒可以呼叫 RpcSmAllocate 和 RpcSmFree。 在此情況下,執行緒必須共用相同的存根記憶體管理執行緒控制碼。 應用程式會呼叫 RpcSmGetThreadHandle 和 RpcSmSetThreadHandle,將執行緒控制碼從執行緒傳遞至執行緒。
如需詳細資訊,請參閱 記憶體管理。
需求
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | rpcndr.h (包含 Rpc.h) |
程式庫 | Rpcrt4.lib |
Dll | Rpcrt4.dll |