Geometry Shader Triangulation?

I am just wondering how th inners of the TriangleStream in HLSL that we use as output from the geometry shader.

Most examples I have seen have been nothing more than 3 or 4 points, so I haven’t really been able to determine this for myself.

Does the TriangleStream automatically triangulate the points that are provided? There are examples of square planes being rendered and they add all four points to the TriangleStream. This suggests to me that it just adds the triangles as necessary, but how does it know how to properly assign the triangles when you are creating many vertices?

As far as i know the TriangleStream represents a triangle strip. So each additional vertex will create another triangle based on the last 3 vertices. The winding order in a triangle strip will alternate every triangle. If it’s not a strip it would most likely be a triangle fan. However most sources and evidence suggests that it should be a strip. Have a look at the example shader in the answers of this question.