atributo context_handle_noserialize
El atributo ACF [context_handle_noserialize] garantiza que nunca se serializará un identificador de contexto, independientemente del comportamiento predeterminado de la aplicación.
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 );
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] en el archivo IDL.
-
function-acf-attribute-list
-
Cualquier atributo ACF adicional que se aplique a la función.
-
nombre de función
-
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] identifica un identificador de enlace que mantiene el contexto o la información de estado en el servidor entre llamadas a procedimiento remoto. El atributo puede aparecer como un atributo de tipo typedef IDL, como atributo de tipo devuelto de función o como atributo de parámetro.
De forma predeterminada, las llamadas en identificadores de contexto se serializan. Una aplicación puede llamar a RpcSsDontSerializeContext para invalidar este comportamiento predeterminado. El uso del atributo [context_handle] en un archivo ACF garantiza que las llamadas a este identificador de contexto concreto no se serializarán, independientemente del comportamiento de la aplicación que realiza la llamada. Proporcionar una rutina de ejecución de contexto es opcional.
Este atributo está disponible en MIDL versión 5.0.
Windows Server 2003 y Windows XP o posterior: Una sola interfaz puede dar cabida a los identificadores de contexto serializados y no serializados, lo que permite que un método en una interfaz tenga acceso exclusivamente a un identificador de contexto (serializado), mientras que otros métodos acceden a ese controlador de contexto en modo compartido (no serializado). Estas funcionalidades 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 controlador de contexto, como los métodos que simplemente leen de un identificador de contexto, se pueden norializar. Tenga en cuenta que los métodos de creación se serializan implícitamente.
Ejemplos
typedef [context_handle_noserialize] PCONTEXT_HANDLE_TYPE;
HRESULT RemoteFunc([context_handle_noserialize] pCxHandle);
Vea también