Hardware instancing issue

Hello dear friends,

I was searching for hardware instancing in the instance of primitives (lines)… but could not find anything on google

I was trying this code:

        #region "Test Hardwarer Instancing"
public readonly static VertexDeclaration VertexDeclaration = new VertexDeclaration(
new VertexElement(0, VertexElementFormat.Vector4, VertexElementUsage.BlendWeight, 0),
new VertexElement(16, VertexElementFormat.Vector4, VertexElementUsage.BlendWeight, 1),
new VertexElement(32, VertexElementFormat.Vector4, VertexElementUsage.BlendWeight, 2),
new VertexElement(48, VertexElementFormat.Vector4, VertexElementUsage.BlendWeight, 3));

private List<InstancedLine> TransformedLineInstances = new List<InstancedLine>();
private Matrix[] TransformInstances;
private DynamicVertexBuffer InstanceVertexBuffer;

private VertexBuffer LineVertexBuffer;
private IndexBuffer LineIndexBuffer;

private Effect Effect;

public void GenerateInstancedCircle(float error)
{
    for (float i = 0; i < Math.PI * 2; i += error)
    {
        var x = (float)(this.CenterX + (this.MajorAxisA * GLOBALSCALE) * (float)(Math.Cos(i)));
        var y = (float)(this.CenterY + (this.MinorAxisB * GLOBALSCALE) * (float)(Math.Sin(i)));

        TransformedLineInstances.Add(new InstancedLine(new Vector3(x, 0, y)));
    }
    TransformedLineInstances.Add(new InstancedLine(new Vector3((float)(this.CenterX + (this.MajorAxisA * GLOBALSCALE) *
     (float)(Math.Cos(0))), 0,
     (float)(this.CenterY + (this.MinorAxisB * GLOBALSCALE) * (float)(Math.Sin(0))))));

    VertexPositionColor[] Line = new VertexPositionColor[2];
    Line[0] = new VertexPositionColor(new Vector3(0, 0, 0), Color.White);
    Line[1] = new VertexPositionColor(new Vector3(error, 0, error), Color.White);
    LineVertexBuffer = new VertexBuffer(Device, VertexPositionColor.VertexDeclaration, Line.Length, BufferUsage.WriteOnly);
    LineVertexBuffer.SetData<VertexPositionColor>(Line);

    LineIndexBuffer = new IndexBuffer(Device, typeof(int), 2, BufferUsage.WriteOnly);
    LineIndexBuffer.SetData<int>(new int[] { 0, 1 });

    Effect = Handler.Content.Load<Effect>(@"Shaders\InstancingColoredLineShader");
    Effect.CurrentTechnique = Effect.Techniques["HardwareInstancing"];
}

public void DrawInstancedEllipsoid()
{
    Array.Resize(ref TransformInstances, TransformedLineInstances.Count);
    for (int i = 0; i < TransformedLineInstances.Count; i++)
    {
        TransformInstances[i] = TransformedLineInstances[i].Transformation;
    }

    DrawHardwareInstanced(TransformInstances, Camera.ViewMatrix, Camera.ProjectionsMatrix);
}

private void DrawHardwareInstanced(Matrix[] instances, Matrix view, Matrix projection)
{
    if (instances.Length == 0)
        return;

    // If we have more instances than room in our vertex buffer, grow it to the neccessary size.
    if ((InstanceVertexBuffer == null) ||
        (instances.Length > InstanceVertexBuffer.VertexCount))
    {
        if (InstanceVertexBuffer != null)
            InstanceVertexBuffer.Dispose();

        InstanceVertexBuffer = new DynamicVertexBuffer(Device, VertexDeclaration,
                                                       instances.Length, BufferUsage.WriteOnly);

    }

    InstanceVertexBuffer.SetData(instances, 0, instances.Length, SetDataOptions.Discard);
    Device.SetVertexBuffers(new VertexBufferBinding(LineVertexBuffer
        , 0, 0), new VertexBufferBinding(InstanceVertexBuffer, 0, 1));
    Device.Indices = LineIndexBuffer;


    Effect.CurrentTechnique = Effect.Techniques["HardwareInstancing"];

    Effect.Parameters["World"].SetValue(Matrix.Identity);
    Effect.Parameters["View"].SetValue(view);
    Effect.Parameters["Projection"].SetValue(projection);
    Effect.Parameters["LineColor"].SetValue(Color.Yellow.ToVector3());

    foreach (var pass in Effect.CurrentTechnique.Passes)
    {
        pass.Apply();
        Device.DrawInstancedPrimitives(PrimitiveType.LineStrip, 0, 0,
                                                       2, 0,
                                                       1, instances.Length);
    }
}

#endregion

This code generates transformed matrices on position x,y… (CreateTranslation)… my idea is to pass many transformed matrices instead of vertices to increase the perfomance…
But that does not work for me…
Do You know how I apply hardware instancing to draw a circle by PrimitiveType.LineStrip´?

Thank You in advance…