Atributos de ponteiro aplicados ao parâmetro

Cada atributo de ponteiro ([ ref], [ unique], e [ ptr]) tem características que afetam a alocação de memória. A tabela a seguir resume essas características.

Atributo de ponteiro Cliente Servidor
Referência ([ref]) O aplicativo cliente deve alocar. Tratamento especial necessário para ponteiros de nível sem escala [out].
Exclusivo ([exclusivo]) Se for um parâmetro, o aplicativo cliente deverá alocar; se inserido, pode ser nulo. A alteração de nulo para não nulo faz com que o stub do cliente seja alocado; a alteração de não nulo para nulo pode causar órfãos.
Completo ([ptr]) Se for um parâmetro, o aplicativo cliente deverá alocar; se inserido, pode ser nulo. A alteração de nulo para não nulo faz com que o stub do cliente seja alocado; a alteração de não nulo para nulo pode causar órfãos.

O atributo [ref] indica que o ponteiro aponta para a memória válida. Por definição, o aplicativo cliente deve alocar toda a memória exigida pelos ponteiros de referência.

O ponteiro exclusivo pode mudar de nulo para não nulo. Se o ponteiro exclusivo for alterado de nulo para não nulo, a nova memória será alocada no cliente. Se o ponteiro exclusivo mudar de não nulo para nulo, a órfã poderá resultar. Para obter mais informações, consulte Memory Orphaning.