Compartilhar via


Função RpcSmAllocate (rpcndr.h)

A função RpcSmAllocate aloca memória dentro da função de gerenciamento de memória stub RPC e retorna um ponteiro para a memória alocada ou NULL.

Sintaxe

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

Parâmetros

Size

Tamanho da memória a ser alocada, em bytes.

pStatus

Ponteiro para o status retornado.

Valor retornado

Valor Significado
RPC_S_OK
A chamada foi bem-sucedida.
RPC_S_OUT_OF_MEMORY
O sistema está sem memória.
 
Nota Para obter uma lista de códigos de erro válidos, consulte RPC Return Values.
 

Comentários

A rotina RpcSmAllocate permite que um aplicativo aloque memória dentro do ambiente de gerenciamento de memória stub RPC. Antes de chamar RpcSmAllocate, o ambiente de gerenciamento de memória já deve estar estabelecido. Para o gerenciamento de memória chamado dentro do stub, o stub do servidor em si pode estabelecer o ambiente necessário. Para obter mais informações, consulte RpcSmEnableAllocate. Ao usar RpcSmAllocate para alocar memória não chamada do stub, o aplicativo deve chamar RpcSmEnableAllocate para estabelecer o ambiente de gerenciamento de memória necessário.

A rotina RpcSmAllocate retornará um ponteiro para a memória alocada se a chamada for bem-sucedida. Caso contrário, um NULL será retornado.

Quando o stub estabelece o gerenciamento de memória, ele libera qualquer memória alocada por RpcSmAllocate. O aplicativo pode liberar essa memória antes de retornar ao stub de chamada chamando RpcSmFree.

Por outro lado, quando o aplicativo estabelece o gerenciamento de memória, ele deve liberar qualquer memória alocada. Ele faz isso chamando RpcSmFree ou RpcSmDisableAllocate.

Para gerenciar a mesma memória dentro do ambiente de gerenciamento de memória stub, vários threads podem chamar RpcSmAllocate e RpcSmFree. Nesse caso, os threads devem compartilhar o mesmo identificador de thread de gerenciamento de memória stub. Os aplicativos passam identificadores de thread para thread chamando RpcSmGetThreadHandle e RpcSmSetThreadHandle.

Para obter mais informações, consulte Gerenciamento de memória.

Requisitos

   
Cliente mínimo com suporte Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho rpcndr.h (inclua Rpc.h)
Biblioteca Rpcrt4.lib
DLL Rpcrt4.dll

Confira também

RpcSmDisableAllocate

RpcSmEnableAllocate

RpcSmFree

RpcSmGetThreadHandle

RpcSmSetThreadHandle