coNtext_handle_noserialize屬性
不論應用程式的預設行為為何, [coNtext_handle_noserialize] ACF 屬性保證永遠不會序列化內容控制碼。
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 );
參數
-
type-acf-attribute-list
-
套用至型別的任何其他 ACF 屬性。
-
coNtext-handle-type
-
指定內容控制碼類型的識別碼,如 typedef 宣告中所定義。 這是在 IDL 檔案中接收 [coNtext_handle] 屬性的類型。
-
function-acf-attribute-list
-
套用至函式的任何其他 ACF 屬性。
-
function-name
-
IDL 檔案中所定義的函式名稱。
-
parameter-acf-attribute-list
-
套用至 參數的任何其他 ACF 屬性。
-
param-name
-
IDL 檔案中所定義的參數名稱。
備註
[coNtext_handle]屬性會識別在遠端程序呼叫之間維護伺服器內容或狀態資訊的系結控制碼。 屬性可以顯示為 IDL typedef 類型 屬性、函式傳回型別屬性或參數屬性。
根據預設,會序列化內容控制碼上的呼叫。 應用程式可以呼叫 RpcSsDontSerializeCoNtext 來覆寫此預設行為。 不論呼叫應用程式的行為為何,在 ACF 檔案中使用 [coNtext_handle] 屬性可確保不會序列化這個特定內容控制碼上的呼叫。 提供內容取消常式是選擇性的。
這個屬性可在 MIDL 5.0 版中使用。
Windows Server 2003 和 Windows XP 或更新版本: 單一介面可以容納序列化和非序列化的內容控制碼,讓介面上的一個方法 (可以獨佔存取序列化) 的內容控制碼,而其他方法則會在共用模式中存取該內容控制碼, (非序列化) 。 這些存取功能相當於讀取/寫入鎖定機制;使用序列化內容控制碼的方法是 (寫入器) 的獨佔使用者,而使用非序列化內容控制碼的方法則共用使用者 (讀取者) 。 終結或修改內容控制碼狀態的方法必須序列化。 未修改內容控制碼狀態的方法,例如只從內容控制碼讀取的方法,可以進行非序列化。 請注意,建立方法會隱含序列化。
範例
typedef [context_handle_noserialize] PCONTEXT_HANDLE_TYPE;
HRESULT RemoteFunc([context_handle_noserialize] pCxHandle);
另請參閱