The PipelineBuffer is an in-memory two-dimensional data store containing rows and columns. It is created by the data flow task and supplied to managed data flow components during execution. The columns contained in a buffer are based on the columns in the IDTSOutputColumnCollection100 collections of the components in the graph.
Source components and components with asynchronous outputs receive a buffer for each of the output objects that are connected to a downstream component. These buffers are referred to as output buffers and do not contain rows. The component that receives the output buffer adds rows to the buffer and calls the SetEndOfRowset method when finished. This method sets the value of the EndOfRowset property to true on the final buffer. The data flow task then provides that buffer to the next component in the graph.
Transformation components with synchronous outputs and destination components receive PipelineBuffer objects in the ProcessInput method. The PipelineBuffer received in this method is an Input buffer and contains the rows that were added to by upstream components. This buffer is restricted and cannot be used to add or remove rows from the buffer.
The PipelineBuffer is written in managed code and supports managed data flow component developers by marshalling data between managed code and the underlying IDTSBuffer100 COM object.
For a complete list of Integration Services data types and the corresponding Get and Set methods of the PipelineBuffer class to use with each data type, see Working with Data Types in the Data Flow.