Compartilhar via


Pipes (RPC)

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

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 com antecedência. Os dados podem ser produzidos ou consumidos incrementalmente. Enquanto estiver no loop de transferência de dados, o servidor chama rotinas 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. Ele apresenta a visão geral nos seguintes tópicos:

Para obter mais informações sobre sintaxe de pipe e restrições, consulte pipe na Referência de linguagem MIDL. O programa de exemplo PIPES no diretório platform software development kit (SDK) samples\rpc demonstra como usar pipes [in,out] para transferir dados entre um cliente e um servidor.