Compartir a través de


atributo context_handle_serialize

El atributo ACF [context_handle_serialize] garantiza que siempre se serializará un identificador de contexto, independientemente del comportamiento predeterminado de la aplicación.

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

Cualquier otro atributo de ACF que se aplique al tipo.

context-handle-type

Identificador que especifica el tipo de identificador de contexto, tal como se define en una declaración typedef . Este es el tipo que recibe el atributo [context_handle_serialize] en el archivo IDL.

function-acf-attribute-list

Cualquier atributo ACF adicional que se aplique a la función.

function-name

Nombre de la función tal y como se define en el archivo IDL.

parameter-acf-attribute-list

Cualquier otro atributo de ACF que se aplique al parámetro .

param-name

Nombre del parámetro tal y como se define en el archivo IDL.

Comentarios

El atributo [context_handle_serialize] identifica un identificador de enlace que mantiene información de contexto o estado en el servidor entre llamadas a procedimientos remotos. El atributo puede aparecer como un atributo de tipo typedef IDL, como atributo de tipo de valor devuelto de función o como atributo de parámetro.

De forma predeterminada, las llamadas en identificadores de contexto se serializan, pero una aplicación puede llamar a RpcSsDontSerializeContext para invalidar este comportamiento predeterminado. El uso del atributo [context_handle_serialize] en un archivo ACF garantiza que las llamadas a este identificador de contexto concreto se serializarán, incluso si la aplicación que realiza la llamada ha invalidado la serialización predeterminada. Una rutina de detención de contexto es opcional.

Este atributo está disponible en MIDL versión 5.0.

Windows Server 2003 y Windows XP o posterior: Una única interfaz puede acomodar identificadores de contexto serializados y no serializados, lo que permite que un método de una interfaz tenga acceso exclusivamente a un identificador de contexto (serializado), mientras que otros métodos acceden a ese identificador de contexto en modo compartido (no serializado). Estas capacidades de acceso son comparables a los mecanismos de bloqueo de lectura y escritura; los métodos que usan un identificador de contexto serializado son usuarios exclusivos (escritores), mientras que los métodos que usan un identificador de contexto no serializado son usuarios compartidos (lectores). Los métodos que destruyen o modifican el estado de un identificador de contexto deben serializarse. Los métodos que no modifican el estado de un identificador de contexto, como los métodos que simplemente leen de un identificador de contexto, pueden no serrializados. Tenga en cuenta que los métodos de creación se serializan implícitamente.

Ejemplos

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

Vea también

Archivo de configuración de la aplicación (ACF)

Atributos de ACF

context_handle_noserialize

context_handle

Identificadores de contexto

RpcSsDontSerializeContext

Rutina de ejecución del contexto del servidor

Clientes multiproceso y identificadores de contexto

Typedef