attribut context_handle_serialize

L’attribut ACF [context_handle_serialize] garantit qu’un handle de contexte sera toujours sérialisé, quel que soit le comportement par défaut de l’application.

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 );

Paramètres

type-acf-attribute-list

Tous les autres attributs ACF qui s’appliquent au type.

context-handle-type

Identificateur qui spécifie le type de handle de contexte, tel que défini dans une déclaration typedef . Il s’agit du type qui reçoit l’attribut [context_handle_serialize] dans le fichier IDL.

function-acf-attribute-list

Tous les attributs ACF supplémentaires qui s’appliquent à la fonction.

function-name

Nom de la fonction tel que défini dans le fichier IDL.

parameter-acf-attribute-list

Tous les autres attributs ACF qui s’appliquent au paramètre .

param-name

Nom du paramètre tel que défini dans le fichier IDL.

Notes

L’attribut [context_handle_serialize] identifie un handle de liaison qui gère les informations de contexte ou d’état sur le serveur entre les appels de procédure distante. L’attribut peut apparaître en tant qu’attribut de type typedef IDL, en tant qu’attribut de type de retour de fonction ou en tant qu’attribut de paramètre.

Par défaut, les appels sur les descripteurs de contexte sont sérialisés, mais une application peut appeler RpcSsDontSerializeContext pour remplacer ce comportement par défaut. L’utilisation de l’attribut [context_handle_serialize] dans un fichier ACF garantit que les appels sur ce handle de contexte particulier seront sérialisés, même si l’application appelante a remplacé la sérialisation par défaut. Une routine d’exécution de contexte est facultative.

Cet attribut est disponible dans MIDL version 5.0.

Windows Server 2003 et Windows XP ou version ultérieure : Une seule interface peut prendre en charge les handles de contexte sérialisés et non sérialisés, ce qui permet à une méthode sur une interface d’accéder exclusivement à un handle de contexte (sérialisé), tandis que d’autres méthodes accèdent à ce handle de contexte en mode partagé (non sérialisé). Ces fonctionnalités d’accès sont comparables aux mécanismes de verrouillage en lecture/écriture ; les méthodes utilisant un handle de contexte sérialisé sont des utilisateurs exclusifs (writers), tandis que les méthodes utilisant un handle de contexte non sérialisé sont des utilisateurs partagés (lecteurs). Les méthodes qui détruisent ou modifient l’état d’un handle de contexte doivent être sérialisées. Les méthodes qui ne modifient pas l’état d’un handle de contexte, telles que celles qui lisent simplement à partir d’un handle de contexte, peuvent être nonsérialisées. Notez que les méthodes de création sont implicitement sérialisées.

Exemples

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

Voir aussi

Fichier de configuration d’application (ACF)

Attributs ACF

context_handle_noserialize

context_handle

Handles de contexte

RpcSsDontSerializeContext

Routine d’exécution du contexte du serveur

Clients multithreads et descripteurs de contexte

Typedef