Freigeben über


attribut "midl_user_allocate"

Die midl_user_allocate-Funktion ist eine Funktion, die Client- und Serveranwendungen bereitstellen, um Arbeitsspeicher zuzuweisen.

void __RPC_FAR * __RPC_API midl_user_allocate (size_t cBytes);

Die Parameter

cBytes

Gibt die Anzahl der zuzuordnenden Bytes an.

Bemerkungen

Sowohl Clientanwendungen als auch Serveranwendungen müssen die midl_user_allocate-Funktion implementieren, es sei denn, Sie kompilieren im OSF-Kompatibilitätsmodus (/osf). Anwendungen und generierte Stubs rufen midl_user_allocate beim Umgang mit Objekten auf, auf die von Zeigern verwiesen wird:

  • Die Serveranwendung sollte midl_user_allocate aufrufen, um Speicher für die Anwendung zuzuweisen; Beispielsweise beim Erstellen eines neuen Knotens.
  • Der Server-Stub ruft midl_user_allocate auf, wenn die Daten im Serveradressbereich getrennt werden.
  • Der Client-Stub ruft midl_user_allocate auf, wenn daten vom Server getrennt werden, auf den durch einen Zeiger verwiesen wird. Beachten Sie, dass bei [in]-, [out]- und [eindeutigen] Zeigern der Client stub nur dann midl_user_allocate aufruft, wenn der [eindeutige] Zeigerwert bei der Eingabe NULL war und während des Aufrufs zu einem Wert ungleich NULL wechselt. Wenn der [eindeutige] Zeiger bei eingaben nicht NULL war, schreibt der Client-Stub die zugeordneten Daten in den vorhandenen Arbeitsspeicher.

Wenn midl_user_allocate Speicher nicht zuweist, muss ein NULL-Zeiger zurückgegeben werden.

Es wird empfohlen, dass midl_user_allocate einen Zeiger zurückgeben, der 8 Byte ausgerichtet ist.

Beispiele

#include <windows.h>

void __RPC_FAR * __RPC_API midl_user_allocate(size_t cBytes) 
{ 
    return(malloc(cBytes)); 
}

Siehe auch

zuordnen

Arrays

Arrays und Zeiger

Array- und Sized-Pointer Attribute

in

midl_user_free

/Osf

ptr

Ref

eindeutige