Condividi tramite


attributo context_handle_noserialize

L'attributo ACF [context_handle_noserialize] garantisce che un handle di contesto non venga mai serializzato, indipendentemente dal comportamento predefinito dell'applicazione.

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

Parametri

type-acf-attribute-list

Qualsiasi altro attributo ACF che si applica al tipo.

contesto-handle-type

Identificatore che specifica il tipo di handle di contesto, come definito in una dichiarazione typedef . Questo è il tipo che riceve l'attributo [context_handle] nel file IDL.

function-acf-attribute-list

Eventuali attributi ACF aggiuntivi che si applicano alla funzione.

nome funzione

Nome della funzione come definito nel file IDL.

parameter-acf-attribute-list

Qualsiasi altro attributo ACF che si applica al parametro.

param-name

Nome del parametro definito nel file IDL.

Commenti

L'attributo [context_handle] identifica un handle di associazione che gestisce informazioni sul contesto o sullo stato nel server tra chiamate di routine remote. L'attributo può essere visualizzato come attributo typedef IDL, come attributo di tipo restituito dalla funzione o come attributo di parametro.

Per impostazione predefinita, le chiamate sugli handle di contesto vengono serializzate. Un'applicazione può chiamare RpcSsDontSerializeContext per eseguire l'override di questo comportamento predefinito. L'uso dell'attributo [context_handle] in un file ACF garantisce che le chiamate su questo particolare handle di contesto non vengano serializzate, indipendentemente dal comportamento dell'applicazione chiamante. La procedura di rundown del contesto è facoltativa.

Questo attributo è disponibile in MIDL versione 5.0.

Windows Server 2003 e Windows XP o versioni successive: Un'unica interfaccia può contenere handle di contesto serializzati e non serializzati, consentendo a un metodo su un'interfaccia di accedere esclusivamente a un handle di contesto (serializzato), mentre altri metodi accedono a tale contesto in modalità condivisa (nonrializzati). Queste funzionalità di accesso sono paragonabili ai meccanismi di blocco di lettura/scrittura; i metodi che usano un handle di contesto serializzato sono utenti esclusivi (writer), mentre i metodi che usano un handle di contesto nonrializzato sono utenti condivisi (lettori). I metodi che eliminano o modificano lo stato di un handle di contesto devono essere serializzati. I metodi che non modificano lo stato di un handle di contesto, ad esempio i metodi che semplicemente leggono da un handle di contesto, possono essere nonrializzati. Si noti che i metodi di creazione vengono serializzati in modo implicito.

Esempi

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

Vedere anche

Attributi ACF

context_handle_serialize

context_handle

Handle di contesto

RpcSsDontSerializeContext

Routine di esecuzione del contesto del server

Handle di contesto e client multithreading

Typedef