共用方式為


type_UserUnmarshal函式

類型 <> _UserUnmarshal函式是 [ wire_marshal] 和 [ user_marshal] 屬性的協助程式函式。 存根會呼叫此函式,以在用戶端或伺服器端取消封存資料。 函式定義為:

unsigned char __RPC_FAR * __RPC_USER  <type>_UserUnmarshal(
    unsigned long __RPC_FAR * pFlags,
    unsigned char __RPC_FAR * pBuffer,
    <type>  __RPC_FAR *       pMyObj);

函 < 式名稱中的類型 > 表示 [wire_marshal][user_marshal] 類型定義中指定的 userm 類型。 當與 [user_marshal] 屬性搭配使用時,此類型可能是無法轉譯的,甚至是 MIDL 編譯器未知的。 線路類型名稱 (函式原型中不會使用可轉譯類型的名稱) 。 不過,請注意,線路類型會定義 OSF DCE 所指定資料的線路配置。

pFlags參數是未帶正負號長旗標欄位的指標。 旗標的上字包含 NDR 資料標記法旗標,如 OSF DCE 所定義,用於浮點數、位元組順序和字元標記法。 下一個字包含 COM 通道所定義的封送處理內容旗標。 欄位內旗標的確切版面配置會在 type_UserSize 函式中說明。

pBuffer參數是目前的緩衝區指標。 此指標可能無法對齊專案。 您的< 類型 > _UserUnmarshal函式應該適當地對齊緩衝區指標、取消封存資料,並傳回新的緩衝區位置,這是未隔離物件之後第一個位元組的位址。

pMyObj參數是使用者定義型別物件的指標。

在異質環境中,NDR 引擎會在呼叫< 類型 > _UserUnmarshal函式之前執行任何必要的資料轉換。 請注意,NDR 引擎會根據為此使用者資料類型提供的連線類型定義來執行此資料轉換。 旗標表示傳送者的資料標記法。

封送處理user_marshal和wire_marshal規則

wire_marshal

user_marshal