Funzione type_UserFree

La <funzione type>_UserFree è una funzione helper per gli attributi [ wire_marshal] e [ user_marshal]. Gli stub chiamano questa funzione per liberare i dati sul lato server. La funzione è definita come:

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

Il <tipo> nel nome della funzione indica la definizione del tipo userm specificata nella definizione di tipo [wire_marshal] o[user_marshal].

Il parametro pFlags è un puntatore a un campo di flag lungo senza segno . La parola superiore del flag contiene flag di rappresentazione dei dati NDR definiti da OSF DCE per rappresentazioni a virgola mobile, ordine byte e rappresentazioni di caratteri. La parola inferiore contiene un flag di contesto di marshalling come definito dal canale COM. Il layout esatto dei flag all'interno del campo è descritto in La funzione type_UserSize.

Il parametro pMyObj è un puntatore a un oggetto tipo utente. Il motore NDR libera l'oggetto di primo livello. Si è responsabili della liberazione di tutti gli oggetti a cui può puntare l'oggetto di primo livello.

Le eccezioni devono essere rilevate e gestite in locale, le eccezioni non devono essere consentite per propicare lo stack di chiamate.

Regole di marshalling per user_marshal e wire_marshal

wire_marshal

user_marshal