Partager via


Fonction RpcSmAllocate (rpcndr.h)

La fonction RpcSmAllocate alloue de la mémoire dans la fonction de gestion de la mémoire stub RPC et retourne un pointeur vers la mémoire allouée ou NULL.

Syntaxe

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

Paramètres

Size

Taille de la mémoire à allouer, en octets.

pStatus

Pointeur vers le status retourné.

Valeur retournée

Valeur Signification
RPC_S_OK
L’appel a réussi.
RPC_S_OUT_OF_MEMORY
La mémoire du système est insuffisante.
 
Note Pour obtenir la liste des codes d’erreur valides, consultez Valeurs de retour RPC.
 

Notes

La routine RpcSmAllocate permet à une application d’allouer de la mémoire dans l’environnement de gestion de la mémoire du stub RPC. Avant d’appeler RpcSmAllocate, l’environnement de gestion de la mémoire doit déjà être établi. Pour la gestion de la mémoire appelée dans le stub, le stub du serveur lui-même peut établir l’environnement nécessaire. Pour plus d’informations, consultez RpcSmEnableAllocate. Lorsque vous utilisez RpcSmAllocate pour allouer de la mémoire non appelée à partir du stub, l’application doit appeler RpcSmEnableAllocate pour établir l’environnement de gestion de la mémoire requis.

La routine RpcSmAllocate retourne un pointeur vers la mémoire allouée si l’appel réussit. Dans le cas contraire, une valeur NULL est retournée.

Lorsque le stub établit la gestion de la mémoire, il libère toute mémoire allouée par RpcSmAllocate. L’application peut libérer cette mémoire avant de revenir au stub appelant en appelant RpcSmFree.

En revanche, lorsque l’application établit la gestion de la mémoire, elle doit libérer toute la mémoire allouée. Pour ce faire, il appelle RpcSmFree ou RpcSmDisableAllocate.

Pour gérer la même mémoire dans l’environnement de gestion de la mémoire stub, plusieurs threads peuvent appeler RpcSmAllocate et RpcSmFree. Dans ce cas, les threads doivent partager le même handle de thread de gestion de mémoire stub. Les applications passent des handles de thread de thread à thread en appelant RpcSmGetThreadHandle et RpcSmSetThreadHandle.

Pour plus d’informations, consultez Gestion de la mémoire.

Spécifications

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête rpcndr.h (inclure Rpc.h)
Bibliothèque Rpcrt4.lib
DLL Rpcrt4.dll

Voir aussi

RpcSmDisableAllocate

RpcSmEnableAllocate

RpcSmFree

RpcSmGetThreadHandle

RpcSmSetThreadHandle