应用于参数的方向属性
方向属性 [ in] 和 [ out] 确定客户端和服务器如何分配和释放内存。 下表总结了方向属性对内存分配的影响。
方向属性 | 客户端上的内存 | 服务器上的内存 |
---|---|---|
[ in] | 客户端应用程序必须在调用之前进行分配。 | 服务器存根分配。 |
[ out] | 客户端存根在返回时分配。 | 服务器存根仅分配顶级指针;服务器应用程序必须分配所有嵌入的指针。 服务器还会根据需要分配新数据。 |
[in, out] | 客户端应用程序必须分配传输到服务器的初始数据;客户端存根分配其他数据。 | 服务器存根分配从客户端传输的初始数据;服务器应用程序根据需要分配新数据。 |
在所有这些情况下,客户端存根不会释放内存。 客户端应用程序在终止之前必须释放内存。 当远程过程调用返回受 [ allocate] ACF 属性) 约束 (时,服务器存根将释放内存。