context_handle_serialize屬性

[context_handle_serialize] ACF 屬性保證上下文句柄無論應用程式預設行為如何,都會被序列化。

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

參數

類型-acf-屬性-列表

還有其他適用於該類型的 ACF 屬性。

context-handle-類型

指定上下文句柄類型(context handle)類型的識別碼,依據 typedef 宣告所定義。 這是在 IDL 檔案中接收 [context_handle_serialize] 屬性的類型。

function-acf-attribute-list

任何附加於函式的 ACF 屬性。

函數名稱

函式名稱依據 IDL 檔案中定義。

參數-ACF-屬性-列表

任何適用於該參數的其他 ACF 屬性。

參數名稱

IDL 檔案中定義的參數名稱。

備註

[context_handle_serialize] 屬性識別一個綁定句柄,負責在遠端程序呼叫間維持伺服器的上下文或狀態資訊。 該屬性可以以 IDL 類型 def 類型屬性、函式回傳類型屬性,或參數屬性出現。

預設情況下,對上下文句柄的呼叫會序列化,但應用程式可以呼叫 RpcSsDontSerializeContext 來覆蓋此預設行為。 在 ACF 檔案中使用 [context_handle_serialize] 屬性,可以保證即使呼叫應用程式已覆寫預設序列化,該特定上下文句柄上的呼叫都會被序列化。 上下文快速執行例程是可選的。

此屬性可在 MIDL 5.0 版本中使用。

Windows Server 2003 及 Windows XP 或更新版本:單一介面可同時支援序列化與非序列化的上下文句柄,使介面上的一種方法能獨佔存取上下文句柄(序列化),而其他方法則以共享模式存取該上下文句柄(非序列化)。 這些存取能力可與讀寫鎖定機制相提並論;使用序列化上下文句柄的方法為專屬使用者(寫入者),而使用非序列化上下文句柄的方法則為共享使用者(讀取器)。 銷毀或修改上下文句柄狀態的方法必須序列化。 不修改上下文句柄狀態的方法,例如僅從上下文句柄讀取的方法,可以被列為非序列化。 請注意,建立方法是隱含序列化的。

Examples

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

另請參閱

應用程式設定檔(ACF)

ACF 屬性

context_handle_noserialize

context_handle

上下文帳號

RpcSsDontSerializeContext

伺服器上下文執行例程

多執行緒客戶端與上下文句柄

typedef