应用于参数的指针属性

每个指针属性 ([ ref]、[ unique]和 [ ptr]) 具有影响内存分配的特征。 下表总结了这些特征。

指针属性 客户端 服务器
参考 ([ref]) 客户端应用程序必须分配。 [out]-only 非桌面级别指针需要特殊处理。
Unique ([unique]) 如果为参数,则客户端应用程序必须分配;如果嵌入,可以为 null。 从 null 更改为非 null 会导致分配客户端存根;从非 null 更改为 null 可能会导致孤立。
完整 ([ptr]) 如果为参数,则客户端应用程序必须分配;如果嵌入,可以为 null。 从 null 更改为非 null 会导致分配客户端存根;从非 null 更改为 null 可能会导致孤立。

[ref] 属性指示指针指向有效内存。 根据定义,客户端应用程序必须分配引用指针所需的所有内存。

唯一指针可以从 null 更改为非 null。 如果唯一指针从 null 更改为非 null,则会在客户端上分配新内存。 如果唯一指针从非 null 更改为 null,则可能会导致孤立。 有关详细信息,请参阅 内存孤立