rpcSmAllocate 函数 (rpcndr.h)
RpcSmAllocate 函数在 RPC 存根内存管理函数中分配内存,并返回指向已分配内存或 NULL 的指针。
语法
void * RpcSmAllocate(
size_t Size,
RPC_STATUS *pStatus
);
parameters
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) |
Library | Rpcrt4.lib |
DLL | Rpcrt4.dll |