Teilen über


Beständiger Speicher auf dem Server

Sie können Ihre Anwendung optimieren, sodass der Serverstub zum Abschluss eines Remoteprozeduraufrufs keinen Arbeitsspeicher auf dem Server freilegt. Wenn beispielsweise ein Kontexthandle von mehreren Remoteprozeduren bearbeitet wird, können Sie das ACF-Attribut [allocate(dont_free)] verwenden, um den zugewiesenen Speicher auf dem Server beizubehalten.

Das attribut [allocate(dont_free)] wird der ACF typedef Deklaration im ACF hinzugefügt. Zum Beispiel:

/* ACF file fragment */
typedef [allocate(all_nodes, dont_free)] P_TREE_TYPE;

Wenn das [allocate(dont_free)] Attribut angegeben wird, wird die Struktur der Strukturdatenstruktur vom Server-Stub zugewiesen, jedoch nicht freigegeben. Wenn Sie die Zeiger auf solche persistenten Datenbereiche für andere Routinen verfügbar machen, z. B. durch Kopieren der Zeiger auf globale Variablen, ist auf die aufbewahrten Daten für andere Serverfunktionen zugegriffen werden kann. Das attribut [allocate(dont_free)] ist besonders nützlich, um persistente Zeigerstrukturen als Teil der Serverstatusinformationen zu verwalten, die einem Kontexthandletyp zugeordnet sind.