Compartir a través de


Función RpcSmAllocate (rpcndr.h)

La función RpcSmAllocate asigna memoria dentro de la función de administración de memoria de código auxiliar RPC y devuelve un puntero a la memoria asignada o NULL.

Sintaxis

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

Parámetros

Size

Tamaño de la memoria que se va a asignar, en bytes.

pStatus

Puntero al estado devuelto.

Valor devuelto

Valor Significado
RPC_S_OK
La llamada se realizó correctamente.
RPC_S_OUT_OF_MEMORY
El sistema no tiene memoria.
 
Nota Para obtener una lista de códigos de error válidos, consulte Rpc Return Values.
 

Comentarios

La rutina RpcSmAllocate permite a una aplicación asignar memoria dentro del entorno de administración de memoria de código auxiliar rpc. Antes de llamar a RpcSmAllocate, ya se debe establecer el entorno de administración de memoria. Para la administración de memoria denominada dentro del código auxiliar, el propio código auxiliar del servidor puede establecer el entorno necesario. Para obtener más información, vea RpcSmEnableAllocate. Cuando se usa RpcSmAllocate para asignar memoria no llamada desde el código auxiliar, la aplicación debe llamar a RpcSmEnableAllocate para establecer el entorno de administración de memoria necesario.

La rutina RpcSmAllocate devuelve un puntero a la memoria asignada si la llamada se realiza correctamente. De lo contrario, se devuelve un valor NULL .

Cuando el código auxiliar establece la administración de memoria, libera cualquier memoria asignada por RpcSmAllocate. La aplicación puede liberar dicha memoria antes de volver al código auxiliar que realiza la llamada mediante una llamada a RpcSmFree.

Por el contrario, cuando la aplicación establece la administración de memoria, debe liberar cualquier memoria asignada. Para ello, llama a RpcSmFree o RpcSmDisableAllocate.

Para administrar la misma memoria en el entorno de administración de memoria de código auxiliar, varios subprocesos pueden llamar a RpcSmAllocate y RpcSmFree. En este caso, los subprocesos deben compartir el mismo identificador de subproceso de administración de memoria auxiliar. Las aplicaciones pasan identificadores de subproceso de subproceso a subproceso llamando a RpcSmGetThreadHandle y RpcSmSetThreadHandle.

Para obtener más información, consulte Administración de memoria.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado rpcndr.h (incluya Rpc.h)
Library Rpcrt4.lib
Archivo DLL Rpcrt4.dll

Consulte también

RpcSmDisableAllocate

RpcSmEnableAllocate

RpcSmFree

RpcSmGetThreadHandle

RpcSmSetThreadHandle