Die type_UserFree-Funktion

Die <Type>_UserFree funktion ist eine Hilfsfunktion für die Attribute [ wire_marshal] und [ user_marshal]. Die Stubs rufen diese Funktion auf, um die Daten auf der Serverseite frei zu geben. Die Funktion ist definiert wie folgt:

void __RPC_USER  <type>_UserFree(
    unsigned long __RPC_FAR * pFlags,
    <type_name>  __RPC_FAR *  pMyObj );

Der <Typ> im Funktionsnamen bezeichnet den in der [wire_marshal] oder [user_marshal] -Typdefinition angegebenen userm-type.

Der pFlags-Parameter ist ein Zeiger auf ein Feld ohne vorsigniertes langes Flag. Das obere Wort des Flags enthält NDR-Datendarstellungsflags, wie von OSF DCE für Gleitkomma-, Bytereihenfolge- und Zeichendarstellungen definiert. Das untere Wort enthält ein Marshallingkontextflag, wie vom COM-Kanal definiert. Das genaue Layout der Flags innerhalb des Felds wird unter Die type_UserSize-Funktion beschrieben.

Der Parameter pMyObj ist ein Zeiger auf ein Benutzertypobjekt. Die NDR-Engine gibt das Objekt der obersten Ebene frei. Sie sind dafür verantwortlich, alle Objekte frei zu geben, auf die das Objekt der obersten Ebene verweisen kann.

Ausnahmen müssen lokal abgefangen und behandelt werden, Ausnahmen dürfen die Aufrufliste nicht propigieren.

Marshallingregeln für user_marshal und wire_marshal

wire_marshal

user_marshal