Condividi tramite


Serializzazione delle procedure

Quando si usa la serializzazione delle procedure, una routine viene etichettata con l'attributo [encode] o [decode]. Anziché generare lo stub remoto consueto, il compilatore genera uno stub di serializzazione per la routine.

Proprio come una procedura remota deve utilizzare un handle di associazione per effettuare una chiamata remota, una procedura di serializzazione deve utilizzare un handle di serializzazione per utilizzare i servizi di serializzazione. Se non viene specificato un handle di serializzazione, viene usato un handle implicito predefinito per indirizzare la chiamata. D'altra parte, se viene specificato l'handle di serializzazione, come argomento esplicito handle_t della routine o usando l'attributo [explicit_handle], è necessario passare un handle valido come argomento della chiamata. Per altre informazioni su come creare un handle di serializzazione valido, vedere Handle di serializzazione, esempi di codifica del buffer fisso ed esempi di codifica incrementale.

Nota

Microsoft RPC consente la combinazione di routine remote e serializzazione in un'unica interfaccia. Tuttavia, prestare attenzione quando si esegue questa operazione.

Per le procedure remote con handle di associazione impliciti, il compilatore MIDL genera una variabile handle globale di tipo handle_t. Le procedure e i tipi con handle di serializzazione implicita usano la stessa variabile di handle globale.

Per gli handle impliciti, l'handle implicito globale deve essere impostato su un handle di associazione valido prima di una chiamata remota. L'handle implicito deve essere impostato su un handle di serializzazione valido prima di una chiamata di serializzazione. Pertanto, una routine non può essere sia remota che serializzata. Deve essere uno o l'altro.