Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Атрибут ACF [context_handle_noserialize] гарантирует, что дескриптор контекста никогда не будет сериализован независимо от поведения приложения по умолчанию.
typedef [context_handle_noserialize [ , type-acf-attribute-list ] ] context-handle-type
[context_handle_noserialize [, function-acf-attribute-list ] ] function-name( );
function-name ( [context_handle_noserialize
[ , parameter-acf-attribute-list ] ] param-name );
Параметры
-
type-acf-attribute-list
-
Любые другие атрибуты ACF, применяемые к типу.
-
тип context-handle
-
Идентификатор, указывающий тип дескриптора контекста, как определено в объявлении typedef . Это тип, который получает атрибут [context_handle] в файле IDL.
-
function-acf-attribute-list
-
Любые дополнительные атрибуты ACF, которые применяются к функции.
-
имя функции
-
Имя функции, как определено в файле IDL.
-
parameter-acf-attribute-list
-
Любые другие атрибуты ACF, которые применяются к параметру.
-
param-name
-
Имя параметра, определенного в файле IDL.
Замечания
Атрибут [context_handle] определяет дескриптор привязки, который поддерживает контекст или сведения о состоянии на сервере между удаленными вызовами процедур. Атрибут может отображаться как атрибут типа типа IDL, как атрибут возвращаемого типа функции или в качестве атрибута параметра.
По умолчанию вызовы дескрипторов контекста сериализуются. Приложение может вызывать RpcSsDontSerializeContext , чтобы переопределить это поведение по умолчанию. Использование атрибута [context_handle] в файле ACF гарантирует, что вызовы данного дескриптора контекста не будут сериализованы независимо от поведения вызывающего приложения. Предоставление подпрограммы запуска контекста является необязательным.
Этот атрибут доступен в MIDL версии 5.0.
Windows Server 2003 и Windows XP или более поздней версии: Единый интерфейс может размещать как сериализованные, так и несериализированные дескриптор контекста, позволяя одному методу доступа к интерфейсу обращаться исключительно к дескриптору контекста (сериализованным), а другие методы могут обрабатывать этот контекст в общем режиме (несериализированный). Эти возможности доступа сравнимы с механизмами блокировки чтения и записи; методы, использующие сериализованный дескриптор контекста, являются эксклюзивными пользователями (средства записи), а методы, использующие несериализированный дескриптор контекста, являются общими пользователями (средствами чтения). Методы, которые уничтожают или изменяют состояние дескриптора контекста, должны быть сериализованы. Методы, которые не изменяют состояние дескриптора контекста, например те методы, которые просто считываются из дескриптора контекста, могут быть несериализированы. Обратите внимание, что методы создания неявно сериализуются.
Примеры
typedef [context_handle_noserialize] PCONTEXT_HANDLE_TYPE;
HRESULT RemoteFunc([context_handle_noserialize] pCxHandle);
См. также