rpcSsAllocate 函数 (rpcndr.h)

RpcSsAllocate 函数在 RPC 存根内存管理函数中分配内存,并返回指向已分配内存或 NULL 的指针。

语法

void * RpcSsAllocate(
  size_t Size
);

parameters

Size

要分配的内存大小(以字节为单位)。

返回值

含义
RPC_S_OUT_OF_MEMORY
系统内存不足。
 
注意 有关有效错误代码的列表,请参阅 RPC 返回值
 

注解

RpcSsAllocate 函数允许应用程序在 RPC 存根内存管理功能中分配内存。 在调用 RpcSsAllocate 之前,必须已建立内存管理环境。 对于在存根中调用的内存管理,存根本身通常建立必要的环境。 有关详细信息,请参阅 内存管理。 使用 RpcSsAllocate 分配未从存根调用的内存时,应用程序必须调用 RpcSsEnableAllocate 来建立所需的内存管理环境。

如果调用成功, RpcSsAllocate 例程将返回指向分配的内存的指针。 否则,它将引发异常。

当存根建立内存管理时,它会释放 RpcSsAllocate 分配的任何内存。 应用程序可以通过调用 RpcSsFree 在返回到调用存根之前释放此类内存。

相比之下,当应用程序建立内存管理时,它必须释放任何分配的内存。 它通过调用 RpcSsFreeRpcSsDisableAllocate 来执行此操作

若要在存根内存管理环境中管理相同的内存,多个线程可以调用 RpcSsAllocateRpcSsFree。 在这种情况下,线程必须共享相同的存根内存管理线程句柄。 应用程序通过调用 RpcSsGetThreadHandle 和 RPCSsSetThreadHandle 从线程到线程传递线程 句柄

注意RpcSsAllocate 例程引发异常,这与返回错误代码的 RpcSmAllocate 不同。
 

要求

   
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 rpcndr.h (包括 Rpc.h)
Library Rpcrt4.lib
DLL Rpcrt4.dll

请参阅

RpcSmAllocate

RpcSsDisableAllocate

RpcSsEnableAllocate

RpcSsFree

RpcSsGetThreadHandle

RpcSsSetThreadHandle