Поделиться через


Неявные и явные дескрипторы

Чтобы объявить дескриптор сериализации, используйте примитивный тип дескриптора handle_t. Дескрипторы сериализации могут быть явными или неявными. Укажите неявные дескрипторы в ACF приложения с помощью атрибута [implicit_handle] . Компилятор MIDL создаст переменную дескриптора глобальной сериализации. Процедуры сериализации с неявным дескриптором используют эту глобальную переменную для доступа к допустимому контексту сериализации.

При использовании кодирования типов созданные подпрограммы, поддерживающие сериализацию определенного типа, используют глобальный неявный дескриптор для доступа к контексту сериализации. Обратите внимание, что удаленным подпрограммам может потребоваться использовать неявный дескриптор в качестве дескриптора привязки. Перед вызовом сериализации убедитесь, что для неявного дескриптора задан допустимый дескриптор сериализации.

Явный дескриптор указывается в качестве параметра прототипа процедуры сериализации в IDL-файле или также может быть указан с помощью атрибута [explicit_handle] в ACF. Явный параметр дескриптора используется для установки правильного контекста сериализации для процедуры. Чтобы установить правильный контекст в случае сериализации типа, компилятор создает вспомогательные подпрограммы, использующие явный параметр handle_t в качестве дескриптора сериализации. При вызове процедуры сериализации или процедуры поддержки типа сериализации необходимо предоставить допустимый дескриптор сериализации.