共用方式為


指標 (RPC)

一般指標

通用指標定義為介面指標和位元組計數指標以外的所有專案。

描述有兩個可能的版面配置:

pointer_type<1> pointer_attributes<1>
simple_type<1> FC_PAD

–或–

pointer_type<1> pointer_attributes<1>
offset_to_complex_description<2>

如果指標是簡單類型或非化字串指標的指標,則會使用第一個格式。 第二種格式用於所有其他類型的指標。 指標屬性會指出其具有FC_SIMPLE_POINTER旗標的描述配置。

pointer_type<1> 是下列其中一項。

格式字元 描述
FC_RP 參考指標。
FC_UP 唯一指標。
FC_FP 完整指標。
FC_OP 物件介面中的唯一指標。

 

區分FC_OP的原因是語意:在物件介面中,應該釋放 [in,out] 指標,再取消分割新的物件並指派新的指標值。

Pointer_attributes<1> 下表所示的任何旗標。

屬性 描述
01 FC_ALLOCATE_ALL_NODES 指標是allocate(all_nodes) 配置配置的一部分。
02 FC_DONT_FREE allocate(dont_free) 指標。
04 FC_ALLOCED_ON_STACK 參考項配置於存根堆疊上的指標。
08 FC_SIMPLE_POINTER 簡單型別或不符合規範字串的指標。 所設定的這個旗標會以上述簡單指標配置表示指標描述的配置,否則會指出具有位移的描述元格式。
10 FC_POINTER_DEREF 必須取值才能處理指標參考的指標。

 

套用size_is()、max_is()、length_is()、套用last_is()和/或first_is() 的指標,其格式字串描述與適當類型的陣列指標相同(例如,套用size_is() 時符合規範的數位,如果套用了size_is()和length_is,則為一致的陣列。

介面指標

物件介面指標格式字串有兩種格式之一,取決於編譯程式是否知道對應的 IID。

具有常數 IID 的介面指標具有下列描述:

FC_IP FC_CONSTANT_IID 
iid<16>

iid<16> 部分是介面指標的實際 IID。 iid 會以與 GUID 數據結構相同的格式寫入格式字串:long、short、short、char [8]。

套用iid_is() 介面指標的描述如下:

FC_IP FC_PAD 
iid_description<> 

iid_description<>是相互关联描述元,根據是否使用 /robust,具有 4 或 6 個字節。 NdrComputeConformance 函式所計算的值是 IID 指標。

位元組計數指標

位元組計數指標與稱為 [byte_count] 的特殊優化屬性有關。 使用下列格式:

FC_BYTE_COUNT_POINTER 
simple_type<1>
byte_count_description<> 

–和–

FC_BYTE_COUNT_POINTER 
FC_PAD
byte_count_description<> 
pointee_description<>

byte_count_description<>是相互关联描述元,根據是否使用 /robust,具有 4 或 6 個字節。

pointee_description<>是指点类型的描述。