Prozedurserialisierung

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

So wie eine Remoteprozedur ein Bindungshand handle für einen Remoteaufruf verwenden muss, muss eine Serialisierungsprozedur ein Serialisierungshand handle verwenden, um Serialisierungsdienste zu verwenden. Wenn kein Serialisierungshand handle angegeben wird, wird ein implizites Standardhand handle verwendet, um den Aufruf zu richten. Wenn andererseits das Serialisierungshand handle angegeben wird, entweder als explizites _ Handle-t-Argument der Routine oder mithilfe des expliziten Handleattributs, 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

Mit Microsoft RPC können Remote- und Serialisierungsprozeduren in einer Schnittstelle gemischt werden. Seien Sie dabei jedoch vorsichtig.

Für Remoteverfahren mit impliziten Bindungshandles generiert der MIDL-Compiler eine globale Handlevariable vom Typ handle _ t. Prozeduren und Typen mit impliziten Serialisierungshandles verwenden dieselbe globale Handlevariable.

Bei impliziten Handles muss das globale implizite Handle vor einem Remoteaufruf auf ein gültiges Bindungshandles festgelegt werden. Das implizite Handle muss vor einem Serialisierungsaufruf auf ein gültiges Serialisierungshand handle festgelegt werden. Aus diesem Grund kann eine Prozedur nicht sowohl remote als auch serialisiert werden. Es muss das eine oder das andere sein.