Udostępnij przez


Serializacja procedury

W przypadku używania serializacji procedury procedura jest oznaczona etykietą [kodowania] lub [dekodowania] atrybutu. Zamiast generować zwykły zdalny wycink, kompilator generuje wycinkę serializacji dla procedury.

Podobnie jak procedura zdalna musi używać uchwytu powiązania w celu wykonania wywołania zdalnego, procedura serializacji musi używać uchwytu serializacji do korzystania z usług serializacji. Jeśli nie określono uchwytu serializacji, do kierowania wywołania jest używana domyślna dojście niejawne. Z drugiej strony, jeśli uchwyt serializacji jest określony, jako jawny handle_t argument procedury lub przy użyciu atrybutu [explicit_handle] należy przekazać prawidłowy uchwyt jako argument wywołania. Aby uzyskać dodatkowe informacje na temat tworzenia prawidłowego uchwytu serializacji, zobacz Serialization Handles, Przykłady kodowania stałego buforui Przykłady kodowania przyrostowego.

Nuta

Program Microsoft RPC umożliwia mieszanie procedur zdalnego i serializacji w jednym interfejsie. Należy jednak zachować ostrożność podczas wykonywania tej czynności.

W przypadku procedur zdalnych z niejawnymi uchwytami powiązań kompilator MIDL generuje globalną zmienną obsługi typu handle_t. Procedury i typy z niejawnymi uchwytami serializacji używają tej samej zmiennej obsługi globalnej.

W przypadku dojścia niejawnego globalnego dojścia niejawnego należy ustawić na prawidłowy uchwyt powiązania przed wywołaniem zdalnym. Dojście niejawne musi być ustawione na prawidłowy uchwyt serializacji przed wywołaniem serializacji. W związku z tym procedura nie może być zarówno zdalna, jak i serializowana. Musi to być jeden lub drugi.