Freigeben über


RpcSmAllocate-Funktion (rpcndr.h)

Die RpcSmAllocate-Funktion weist Arbeitsspeicher innerhalb der RPC-Stubspeicherverwaltungsfunktion zu und gibt einen Zeiger auf den zugewiesenen Arbeitsspeicher oder NULL zurück.

Syntax

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

Parameter

Size

Größe des zuzuordnenden Arbeitsspeichers in Bytes.

pStatus

Zeiger auf den zurückgegebenen status.

Rückgabewert

Wert Bedeutung
RPC_S_OK
Der Aufruf war erfolgreich.
RPC_S_OUT_OF_MEMORY
Das System hat nicht genügend Arbeitsspeicher.
 
Hinweis Eine Liste der gültigen Fehlercodes finden Sie unter RPC-Rückgabewerte.
 

Hinweise

Die RpcSmAllocate-Routine ermöglicht es einer Anwendung, Arbeitsspeicher innerhalb der RPC-Stubspeicherverwaltungsumgebung zuzuweisen. Vor dem Aufrufen von RpcSmAllocate muss die Speicherverwaltungsumgebung bereits eingerichtet sein. Für die Speicherverwaltung, die innerhalb des Stubs aufgerufen wird, kann der Serverstub selbst die erforderliche Umgebung einrichten. Weitere Informationen finden Sie unter RpcSmEnableAllocate. Wenn Sie RpcSmAllocate zum Zuweisen von Arbeitsspeicher verwenden, der nicht aus dem Stub aufgerufen wird, muss die Anwendung RpcSmEnableAllocate aufrufen, um die erforderliche Speicherverwaltungsumgebung einzurichten.

Die RpcSmAllocate-Routine gibt einen Zeiger auf den zugewiesenen Arbeitsspeicher zurück, wenn der Aufruf erfolgreich ist. Andernfalls wird null zurückgegeben.

Wenn der Stub die Speicherverwaltung einrichtet, gibt er den von RpcSmAllocate zugewiesenen Arbeitsspeicher frei. Die Anwendung kann diesen Arbeitsspeicher freigeben, bevor sie zum aufrufenden Stub zurückkehrt, indem RpcSmFree aufgerufen wird.

Im Gegensatz dazu muss die Anwendung beim Einrichten der Speicherverwaltung den zugewiesenen Arbeitsspeicher freigeben. Dazu wird entweder RpcSmFree oder RpcSmDisableAllocate aufgerufen.

Um denselben Arbeitsspeicher in der Stubspeicher-Verwaltungsumgebung zu verwalten, können mehrere Threads RpcSmAllocate und RpcSmFree aufrufen. In diesem Fall müssen die Threads dasselbe Stubspeicherverwaltungsthreadhandle verwenden. Anwendungen übergeben Threadhandles von Thread zu Thread, indem sie RpcSmGetThreadHandle und RpcSmSetThreadHandle aufrufen.

Weitere Informationen finden Sie unter Arbeitsspeicherverwaltung.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile rpcndr.h (include Rpc.h)
Bibliothek Rpcrt4.lib
DLL Rpcrt4.dll

Weitere Informationen

RpcSmDisableAllocate

RpcSmEnableAllocate

RpcSmFree

RpcSmGetThreadHandle

RpcSmSetThreadHandle