Partilhar via


atributo string (RPC)

O atributo [ string] indica que o parâmetro é um ponteiro para uma matriz do tipo char, byteou w_char. Tal como acontece com uma matriz conforme, o tamanho de um parâmetro [string] é determinado em tempo de execução. Ao contrário de uma matriz conforme, o desenvolvedor não precisa fornecer o comprimento associado à matriz — o atributo [string] diz ao stub para determinar o tamanho da matriz chamando strlen. Um atributo [string] não pode ser usado ao mesmo tempo que os atributos [ length_is] ou [ last_is].

A combinação de atributos [in, string] direciona o stub para passar a cadeia de caracteres somente do cliente para o servidor. A quantidade de memória alocada no servidor é a mesma que o tamanho da cadeia de caracteres transmitida mais um.

Os atributos [ out, string] direcionam o stub para passar a string somente do servidor para o cliente. O design call-by-value da linguagem C insiste que todos os parâmetros [out] devem ser ponteiros.

O parâmetro [out] deve ser um ponteiro e, por padrão, todos os parâmetros de ponteiro são ponteiros de referência. O ponteiro de referência não muda durante a chamada — ele aponta para a mesma memória que antes da chamada. Para ponteiros de cadeia de caracteres, a restrição adicional do ponteiro de referência significa que o cliente deve alocar memória válida suficiente antes de fazer a chamada de procedimento remoto. Os stubs transmitem a string que os atributos [out, string] indicam na memória já alocada no lado do cliente.

Os tópicos a seguir descrevem os protótipos de parâmetros de procedimento remoto para cadeias de caracteres: