Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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:
- Terminologia Essencial do Tubo
- O Estado do Tubo
- Definindo pipes em arquivos IDL
- Client-Side Implementação de Tubos
- Server-Side Implementação de Tubos
- regras para vários tubos
- Combinação de parâmetros de tubos e não tubos
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.