Compartilhar via


Função RpcSsAllocate (rpcndr.h)

A função RpcSsAllocate 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 * RpcSsAllocate(
  size_t Size
);

Parâmetros

Size

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

Valor retornado

Valor Significado
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 função RpcSsAllocate permite que um aplicativo aloque memória dentro da função de gerenciamento de memória stub RPC. Antes de chamar RpcSsAllocate, o ambiente de gerenciamento de memória já deve estar estabelecido. Para o gerenciamento de memória chamado dentro do stub, o stub em si geralmente estabelece o ambiente necessário. Para obter mais informações, consulte Gerenciamento de memória. Ao usar RpcSsAllocate para alocar memória não chamada do stub, o aplicativo deve chamar RpcSsEnableAllocate para estabelecer o ambiente de gerenciamento de memória necessário.

A rotina RpcSsAllocate retornará um ponteiro para a memória alocada, se a chamada tiver sido bem-sucedida. Caso contrário, ele gerará uma exceção.

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

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

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

Nota A rotina RpcSsAllocate gera exceções, ao contrário de RpcSmAllocate, que retorna o código de erro.
 

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

RpcSmAllocate

RpcSsDisableAllocate

RpcSsEnableAllocate

RpcSsFree

RpcSsGetThreadHandle

RpcSsSetThreadHandle