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