Freigeben über


RpcSsAllocate-Funktion (rpcndr.h)

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

Syntax

void * RpcSsAllocate(
  size_t Size
);

Parameter

Size

Größe des zuzuordnenden Arbeitsspeichers in Bytes.

Rückgabewert

Wert Bedeutung
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 RpcSsAllocate-Funktion ermöglicht es einer Anwendung, Arbeitsspeicher innerhalb der RPC-Stubspeicherverwaltungsfunktion zuzuweisen. Vor dem Aufrufen von RpcSsAllocate muss die Speicherverwaltungsumgebung bereits eingerichtet sein. Für die Speicherverwaltung, die innerhalb des Stubs aufgerufen wird, richtet der Stub in der Regel selbst die erforderliche Umgebung ein. Weitere Informationen finden Sie unter Arbeitsspeicherverwaltung. Wenn Sie RpcSsAllocate verwenden, um Arbeitsspeicher zuzuweisen, der nicht aus dem Stub aufgerufen wurde, muss die Anwendung RpcSsEnableAllocate aufrufen, um die erforderliche Speicherverwaltungsumgebung einzurichten.

Die RpcSsAllocate-Routine gibt einen Zeiger auf den zugewiesenen Arbeitsspeicher zurück, wenn der Aufruf erfolgreich war. Andernfalls löst es eine Ausnahme aus.

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

Wenn die Anwendung hingegen die Speicherverwaltung einleite, muss sie den zugeordneten Arbeitsspeicher freigeben. Dazu wird entweder RpcSsFree oder RpcSsDisableAllocate aufgerufen.

Um denselben Arbeitsspeicher in der Stub-Speicherverwaltungsumgebung zu verwalten, können mehrere Threads RpcSsAllocate und RpcSsFree aufrufen. In diesem Fall müssen die Threads dasselbe Stubspeicherverwaltungs-Threadhandle verwenden. Anwendungen übergeben Threadhandles von Thread zu Thread, indem sie RpcSsGetThreadHandle und RPCSsSetThreadHandle aufrufen.

Hinweis Die RpcSsAllocate-Routine löst Ausnahmen aus, im Gegensatz zu RpcSmAllocate, die den Fehlercode zurückgibt.
 

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

RpcSmAllocate

RpcSsDisableAllocate

RpcSsEnableAllocate

RpcSsFree

RpcSsGetThreadHandle

RpcSsSetThreadHandle