Share via


Funzione RpcSmAllocate (rpcndr.h)

La funzione RpcSmAllocate alloca memoria all'interno della funzione di gestione della memoria stub RPC e restituisce un puntatore alla memoria allocata o NULL.

Sintassi

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

Parametri

Size

Dimensioni della memoria da allocare, in byte.

pStatus

Puntatore allo stato restituito.

Valore restituito

Valore Significato
RPC_S_OK
La chiamata ha avuto esito positivo.
RPC_S_OUT_OF_MEMORY
Il sistema non è in memoria.
 
Nota Per un elenco di codici di errore validi, vedere Valori restituiti RPC.
 

Commenti

La routine RpcSmAllocate consente a un'applicazione di allocare memoria all'interno dell'ambiente di gestione della memoria stub RPC. Prima di chiamare RpcSmAllocate, l'ambiente di gestione della memoria deve essere già stabilito. Per la gestione della memoria chiamata all'interno dello stub, lo stub del server stesso può stabilire l'ambiente necessario. Per altre informazioni, vedere RpcSmEnableAllocate. Quando si usa RpcSmAllocate per allocare memoria non chiamata dallo stub, l'applicazione deve chiamare RpcSmEnableAllocate per stabilire l'ambiente di gestione della memoria richiesto.

La routine RpcSmAllocate restituisce un puntatore alla memoria allocata se la chiamata ha esito positivo. In caso contrario, viene restituito un valore NULL .

Quando lo stub stabilisce la gestione della memoria, libera qualsiasi memoria allocata da RpcSmAllocate. L'applicazione può liberare tale memoria prima di tornare al stub chiamante chiamando RpcSmFree.

Al contrario, quando l'applicazione stabilisce la gestione della memoria, deve liberare qualsiasi memoria allocata. Lo fa chiamando RpcSmFree o RpcSmDisableAllocate.

Per gestire la stessa memoria all'interno dell'ambiente di gestione della memoria stub, più thread possono chiamare RpcSmAllocate e RpcSmFree. In questo caso, i thread devono condividere lo stesso handle di thread di gestione della memoria stub. Le applicazioni passano gli handle di thread dal thread al thread chiamando RpcSmGetThreadHandle e RpcSmSetThreadHandle.

Per altre informazioni, vedere Gestione della memoria.

Requisiti

   
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione rpcndr.h (include Rpc.h)
Libreria Rpcrt4.lib
DLL Rpcrt4.dll

Vedi anche

RpcSmDisableAllocate

RpcSmEnableAllocate

RpcSmFree

RpcSmGetThreadHandle

RpcSmSetThreadHandle