Сериализация процедур
При использовании сериализации процедуры процедура помечается атрибутом [encode] или [decode]. Вместо создания обычной удаленной заглушки компилятор создает заглушку сериализации для подпрограммы.
Так же, как удаленная процедура должна использовать дескриптор привязки для удаленного вызова, процедура сериализации должна использовать дескриптор сериализации для использования служб сериализации. Если дескриптор сериализации не указан, для направления вызова используется неявный дескриптор по умолчанию. С другой стороны, если указан дескриптор сериализации в качестве явного аргумента handle_t подпрограммы или с помощью атрибута [explicit_handle], необходимо передать допустимый дескриптор в качестве аргумента вызова. Дополнительные сведения о создании допустимого дескриптора сериализации см. в разделах Дескрипторы сериализации, Примеры кодирования фиксированного буфера и Примеры добавочного кодирования.
Примечание
Microsoft RPC позволяет смешивать процедуры удаленной работы и сериализации в одном интерфейсе. Однако при этом соблюдайте осторожность.
Для удаленных процедур с неявными дескрипторами привязки компилятор MIDL создает глобальную переменную дескриптора типа handle_t. Процедуры и типы с дескрипторами неявной сериализации используют одну и ту же глобальную переменную дескриптора.
Для неявных дескрипторов глобальный неявный дескриптор должен иметь допустимый дескриптор привязки перед удаленным вызовом. Перед вызовом сериализации неявный дескриптор должен иметь допустимый дескриптор сериализации. Поэтому процедура не может быть как удаленной, так и сериализованной. Это должно быть одно или другое.