Ler em inglês

Compartilhar via


atributo string (RPC)

O atributo [ string] indica que o parâmetro é um ponteiro para uma matriz do tipo char, byte ou w_char. Assim como acontece com uma matriz compatível, o tamanho de um parâmetro [string] é determinado em tempo de execução. Ao contrário de uma matriz compatível, o desenvolvedor não precisa fornecer o comprimento associado à matriz — o atributo [string] informa 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 é igual ao tamanho da cadeia de caracteres transmitida mais uma.

Os atributos [ out, string] direcionam o stub para passar a cadeia de caracteres do servidor apenas para o cliente. O design de chamada por valor 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 é alterado 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 cadeia de caracteres que os atributos [out, string] indicam para a memória já alocada no lado do cliente.

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