2.2.5.3.4.5 Pipes
In NDR64, a pipe element can be of any NDR primitive or constructed type except the following:
Pipes
Pointers
Either conformant or varying arrays or both conformant and varying arrays
Structures that contain either conformant or varying arrays or that contain both conformant and varying arrays
NDR64 represents a pipe as a sequence of chunks. Each chunk is represented as an ordered sequence of representations of the elements in the chunk. The sequence MUST be preceded by a 64-bit unsigned integer that specifies the number of elements in the chunk and MUST be followed by a 64-bit unsigned integer that specifies the arithmetic negate of the value of the number of elements in the chunk, treated as a signed 64-bit integer. The final chunk MUST contain no elements and MUST consist only of two unsigned 64-bit integers with the value 0 (zero). A chunk MUST contain, at most 231-1 elements of the pipe (as opposed to 232-1, as supported in NDR as specified in [C706]).
Figure 14: A pipe as a sequence of chunks