Поделиться через


Функция RpcSmAllocate (rpcndr.h)

Функция RpcSmAllocate выделяет память внутри функции управления памятью заглушки RPC и возвращает указатель на выделенную память или значение NULL.

Синтаксис

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

Параметры

Size

Размер выделенной памяти в байтах.

pStatus

Указатель на возвращенное состояние.

Возвращаемое значение

Значение Значение
RPC_S_OK
Вызов выполнен успешно.
RPC_S_OUT_OF_MEMORY
Системе не хватает памяти.
 
Примечание Список допустимых кодов ошибок см. в разделе Возвращаемые значения RPC.
 

Комментарии

Подпрограмма RpcSmAllocate позволяет приложению выделять память в среде управления памятью заглушки RPC. Перед вызовом RpcSmAllocate необходимо уже установить среду управления памятью. Для управления памятью, вызываемой внутри заглушки, сама заглушка сервера может создать необходимую среду. Дополнительные сведения см. в разделе RpcSmEnableAllocate. При использовании RpcSmAllocate для выделения памяти, не вызванной из заглушки, приложение должно вызвать RpcSmEnableAllocate , чтобы установить необходимую среду управления памятью.

Подпрограмма RpcSmAllocate возвращает указатель на выделенную память, если вызов выполнен успешно. В противном случае возвращается значение NULL .

Когда заглушка устанавливает управление памятью, она освобождает любую память, выделенную RpcSmAllocate. Приложение может освободить такую память перед возвратом к вызывающей заглушку, вызвав RpcSmFree.

В отличие от этого, когда приложение устанавливает управление памятью, оно должно освободить все выделенные памяти. Для этого вызывается RpcSmFree или RpcSmDisableAllocate.

Для управления одной и той же памятью в среде управления памятью заглушки несколько потоков могут вызывать RpcSmAllocate и RpcSmFree. В этом случае потоки должны совместно использовать один и тот же дескриптор потока управления памятью заглушки. Приложения передают дескрипторы потоков из потока в поток, вызывая RpcSmGetThreadHandle и RpcSmSetThreadHandle.

Дополнительные сведения см. в разделе Управление памятью.

Требования

   
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Целевая платформа Windows
Header rpcndr.h (включая Rpc.h)
Библиотека Rpcrt4.lib
DLL Rpcrt4.dll

См. также раздел

RpcSmDisableAllocate

RpcSmEnableAllocate

RpcSmFree

RpcSmGetThreadHandle

RpcSmSetThreadHandle