Каналы (RPC)

Конструктор типа канала — это эффективный механизм для передачи больших объемов данных или любого количества данных, которые одновременно не все доступны в памяти. Используя канал, время выполнения RPC обрабатывает фактическую передачу данных, устраняя издержки, связанные с повторяющимися удаленными вызовами процедур.

После того как клиент вызывает удаленную процедуру с параметром канала, клиент и сервер входят в циклы для передачи данных. Данные могут быть созданы на клиенте или сервере. В любом случае объем данных (в байтах) не должен быть известен заранее. Данные можно производить или использовать постепенно. В цикле передачи данных сервер вызывает подпрограммы-заглушки, которые загружают или выгружают буфер данных. Клиент вызывает определяемые программистом процедуры для выделения буферов, загрузки данных в буферы и их выгрузки из буферов.

В этом разделе представлен обзор использования каналов для удаленных вызовов процедур. В ней представлен обзор в следующих разделах:

Дополнительные сведения о синтаксисе и ограничениях канала см. в разделе Pipe в справочнике по языку MIDL. Пример программы PIPES в каталоге Samples\rpc пакета sdk для платформы демонстрирует использование каналов [in,out] для передачи данных между клиентом и сервером.