attribut context_handle_noserialize

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

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

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] dans le fichier IDL.

function-acf-attribute-list

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

nom de la fonction

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

parameter-acf-attribute-list

Tout autre attribut ACF qui s’applique au paramètre.

param-name

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

Notes

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

Par défaut, les appels sur les handles de contexte sont sérialisés. Une application peut appeler RpcSsDontSerializeContext pour remplacer ce comportement par défaut. L’utilisation de l’attribut [context_handle] dans un fichier ACF garantit que les appels sur ce handle de contexte particulier ne seront pas sérialisés, quel que soit le comportement de l’application appelante. La fourniture d’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 interface unique peut prendre en charge des 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 (rédacteurs), 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 non utilisées. Notez que les méthodes de création sont implicitement sérialisées.

Exemples

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

Voir aussi

Attributs ACF

context_handle_serialize

context_handle

Handles de contexte

RpcSsDontSerializeContext

Routine d’exécution du contexte serveur

Clients multithreads et handles de contexte

Typedef