Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die midl_user_allocate-Funktion ist eine Prozedur, die von Entwicklern von RPC-Anwendungen bereitgestellt werden muss. Er weist Speicher für die RPC-Stubs und Bibliotheksroutinen zu. Die midl_user_allocate-Funktion muss mit dem folgenden Prototyp übereinstimmen:
void __RPC_FAR * __RPC_USER midl_user_allocate (size_t cBytes);
Der parameter cBytes gibt die Anzahl der zuzuordnenden Bytes an. 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 direkt oder indirekt auf, um zugeordnete Objekte zu verwalten. Zum Beispiel:
- Die Client- und Serveranwendungen rufen midl_user_allocate auf, um Speicher für die Anwendung zuzuweisen, z. B. beim Erstellen eines neuen Knotens in einer Struktur oder einer verknüpften Liste.
- Der Server-Stub ruft midl_user_allocate auf, wenn Daten im Serveradressraum getrennt werden.
- Der Client-Stub ruft midl_user_allocate auf, wenn daten vom Server entfernt werden, auf den durch einen [out]-Zeiger verwiesen wird. Beachten Sie, dass der Client-Stub für [in], [out] und [unique] Zeiger nur midl_user_allocate aufruft, wenn der [eindeutige] Zeigerwert bei eingaben 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 zuordnen kann, sollte ein NULL-Zeiger zurückgegeben werden.
Die midl_user_allocate-Funktion sollte einen ausgerichteten 8-Byte-Zeiger zurückgeben.
Beispielprogramme, die mit dem Platform Software Development Kit (SDK) bereitgestellt werden, implementieren midl_user_allocate in Bezug auf die C-Funktion malloc:
void __RPC_FAR * __RPC_USER midl_user_allocate(size_t cBytes)
{
return((void __RPC_FAR *) malloc(cBytes));
}
Anmerkung
Wenn das RpcSs-Paket aktiviert ist (z. B. als Ergebnis der Verwendung des Attributs [ enable_allocate] ), verwenden Sie RpcSmAllocate, um Arbeitsspeicher auf serverseitiger Seite zuzuweisen. Weitere Informationen zu [enable_allocate], finden Sie unter MIDL Reference.