共用方式為


使用者封送處理

使用者封送處理具有類似transmit_as的格式字串:

FC_USER_MARSHAL
flags<1>
quadruple_index<2>
user_type_memory_size<2>
transmitted_type_buffer size<2>
offset_to_the_transmitted_type<2>

旗標<1 個> 位元組包含上層旗號和下對齊點。

旗標擷取的上 2 位是用來描述線類型是否定義為唯一指標、參考指標或沒有指標(不能是 ptr)。 已定義下列指令清單來設定/取得旗標:

#define USER_MARSHAL_UNIQUE         0x80
#define USER_MARSHAL_REF            0x40
#define USER_MARSHAL_POINTER        0xc0  /* unique or ref */
#define USER_MARSHAL_IID            0x20  /* JIT compiler only */

旗標字的對齊範圍會保持傳輸型別的線對齊方式。

quadruple_index<2> 是使用者封送處理函式四倍回呼例程的索引。 例程位置如下:重設大小、封送處理、取消封送處理和釋放例程。

user_type_memory_size<2> 提供使用者特定類型的大小,包括未知的類型。

當大小不同或實際固定大小時,transmitted_type_buffer_size<2> 為零。 這是一項優化,可讓 MIDL 在重設大小緩衝區時略過回呼,以及在釋放時也略過回呼。

範圍

[range] 檢查提供 NDR 層自變數驗證的額外方法。 [range] 描述元的格式如下:

FC_RANGE,   flags_type <1>
low value<4>
high value<4>

旗標會採用上層小號,並輸入第二個字節的下角。 低值和高值取決於要檢查的變數類型。

國旗是作為擴張車輛:編譯程式已將nibble設定為零。