Partilhar via


Tubos (RPC)

O construtor do tipo pipe é um mecanismo altamente eficiente para passar grandes quantidades de dados, ou qualquer quantidade de dados que não estão todos disponíveis na memória ao mesmo tempo. Usando um pipe, o tempo de execução RPC lida com a transferência de dados real, eliminando a sobrecarga associada a repetidas chamadas de procedimento remoto.

Depois que um cliente invoca um procedimento remoto que tem um parâmetro pipe, o cliente e o servidor inserem loops para transferir dados. Os dados podem ser produzidos no cliente ou no servidor. De qualquer forma, a quantidade de dados (em bytes) não precisa ser conhecida antecipadamente. Os dados podem ser produzidos ou consumidos de forma incremental. Enquanto estiver no loop de transferência de dados, o servidor chama rotinas de stub que carregam ou descarregam um buffer de dados. O cliente chama procedimentos definidos pelo programador para alocar buffers, carregar dados e descarregar dados dos buffers.

Esta seção fornece uma visão geral do uso de pipes para chamadas de procedimento remoto. Apresenta a visão geral nos seguintes tópicos:

Para obter mais informações sobre sintaxe e restrições de pipe, consulte pipe na Referência de linguagem MIDL. O programa de exemplo PIPES nos exemplos do Platform Software Development Kit (SDK)\rdiretório pc demonstra como usar [in,out] pipes para transferir dados entre um cliente e um servidor.