Serialisierung der Prozedur
Wenn Sie die Serialisierung von Prozeduren verwenden, wird eine Prozedur mit dem Attribut [codiert] oder [decodieren] bezeichnet. Anstatt den üblichen Remote-Stub zu generieren, generiert der Compiler einen Serialisierungs-Stub 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 impliziter Standardhandle verwendet, um den Aufruf zu leiten. Wenn dagegen der Serialisierungshandle angegeben wird, entweder als explizites handle_t Argument der Routine oder mithilfe des Attributs [explicit_handle] 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 Puffercodierungund Beispiele für inkrementelle Codierung.
Anmerkung
Microsoft RPC ermöglicht das Mischen von Remote- und Serialisierungsverfahren in einer Schnittstelle. Verwenden Sie jedoch Vorsicht, wenn Sie dies tun.
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 Handlevariable.
Für implizite Handles muss das globale implizite Handle auf ein gültiges Bindungshandle festgelegt werden, bevor ein Remoteaufruf erfolgt. 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 eine oder die andere sein.