Freigeben über


Prozedurserialisierung

Wenn Sie die Prozedurserialisierung verwenden, wird eine Prozedur mit dem Attribut [encode] oder [decode] bezeichnet. Anstatt den üblichen Remotestub zu generieren, generiert der Compiler einen Serialisierungsstub für die Routine.

Ebenso wie eine Remoteprozedur ein Bindungshandle verwenden muss, um einen Remoteaufruf durchzuführen, muss eine Serialisierungsprozedur ein Serialisierungshandle verwenden, um Serialisierungsdienste zu verwenden. Wenn kein Serialisierungshandle angegeben ist, wird ein implizites Standardhandle verwendet, um den Aufruf zu leiten. Wenn dagegen das Serialisierungshandle angegeben ist, entweder als explizites handle_t Argument der Routine oder mithilfe des [explicit_handle]-Attributs, müssen Sie ein gültiges Handle als Argument des Aufrufs übergeben. Weitere Informationen zum Erstellen eines gültigen Serialisierungshandles finden Sie unter Serialisierungshandles, Beispiele für feste Puffercodierung und Beispiele für inkrementelle Codierung.

Hinweis

Microsoft RPC ermöglicht die Kombination von Remote- und Serialisierungsverfahren in einer Schnittstelle. Gehen Sie dabei jedoch vorsichtig vor.

Für Remoteprozeduren mit impliziten Bindungshandles generiert der MIDL-Compiler eine globale Handlevariable vom Typ handle_t. Prozeduren und Typen mit impliziten Serialisierungshandles verwenden dieselbe globale Handle-Variable.

Bei impliziten Handles muss das globale implizite Handle vor einem Remoteaufruf auf ein gültiges Bindungshandle festgelegt werden. Das implizite Handle muss vor einem Serialisierungsaufruf auf ein gültiges Serialisierungshandle festgelegt werden. Daher kann eine Prozedur nicht sowohl remote als auch serialisiert werden. Es muss das eine oder das andere sein.