atributo context_handle_serialize

O atributo ACF [context_handle_serialize] garante que um identificador de contexto sempre será serializado, independentemente do comportamento padrão do aplicativo.

typedef [context_handle_serialize [ , type-acf-attribute-list ] ] context-handle-type;

[context_handle_serialize [, function-acf-attribute-list ] ] function-name( );

function-name(
    [context_handle_serialize [ , parameter-acf-attribute-list ] ] param-name );

Parâmetros

type-acf-attribute-list

Quaisquer outros atributos ACF que se aplicam ao tipo.

context-handle-type

O identificador que especifica o tipo de identificador de contexto, conforme definido em uma declaração typedef . Esse é o tipo que recebe o atributo [context_handle_serialize] no arquivo IDL.

function-acf-attribute-list

Quaisquer atributos ACF adicionais que se aplicam à função.

function-name

O nome da função conforme definido no arquivo IDL.

parameter-acf-attribute-list

Quaisquer outros atributos ACF que se aplicam ao parâmetro .

param-name

O nome do parâmetro conforme definido no arquivo IDL.

Comentários

O atributo [context_handle_serialize] identifica um identificador de associação que mantém informações de contexto ou estado no servidor entre chamadas de procedimento remoto. O atributo pode aparecer como um atributo de tipo typedef IDL, como um atributo de tipo de retorno de função ou como um atributo de parâmetro.

Por padrão, as chamadas em identificadores de contexto são serializadas, mas um aplicativo pode chamar RpcSsDontSerializeContext para substituir esse comportamento padrão. Usar o atributo [context_handle_serialize] em um arquivo ACF garante que as chamadas nesse identificador de contexto específico serão serializadas, mesmo que o aplicativo de chamada tenha substituído a serialização padrão. Uma rotina de resumo de contexto é opcional.

Esse atributo está disponível no MIDL versão 5.0.

Windows Server 2003 e Windows XP ou posterior: Uma única interface pode acomodar identificadores de contexto serializados e não serializados, permitindo que um método em uma interface acesse um identificador de contexto exclusivamente (serializado), enquanto outros métodos acessam esse identificador de contexto no modo compartilhado (não serializado). Esses recursos de acesso são comparáveis aos mecanismos de bloqueio de leitura/gravação; os métodos que usam um identificador de contexto serializado são usuários exclusivos (gravadores), enquanto os métodos que usam um identificador de contexto não inicializado são usuários compartilhados (leitores). Os métodos que destroem ou modificam o estado de um identificador de contexto devem ser serializados. Métodos que não modificam o estado de um identificador de contexto, como os métodos que simplesmente leem de um identificador de contexto, podem ser não sequenciados. Observe que os métodos de criação são implicitamente serializados.

Exemplos

typedef [context_handle_serialize] PCONTEXT_HANDLE_TYPE; 
HRESULT RemoteFunc([context_handle_serialize] pCxHandle);

Confira também

AcF (Arquivo de Configuração de Aplicativo)

Atributos ACF

context_handle_noserialize

context_handle

Identificadores de contexto

RpcSsDontSerializeContext

Rotina de execução de contexto do servidor

Clientes multithreaded e identificadores de contexto

Typedef