The instancing sample is at the very bottom of the below post when i was getting the bug out of the gl version or the typo.
I dunno if it will be sufficient but i could push a lot of particles more then i think i would ever actually try to use in a game, maybe it will help.
Its a single quad with 4 vertices that is put on the shader then a instance buffer is also bound to that which is basically a list of Vector3 positions which is updated to draw the same quad at that position. The quad is only sent to the gpu once and just sits on it. You could make it a full orientation ect i suppose but it was for particles so i kept it small. The shader has 3 parts a pixel shader a vertex shader and a instance shader.
struct VSInstanceInputSimple
{
float3 InstancePosition : POSITION1;
float InstanceTimeOrId : BLENDWEIGHT0;
};
struct VSVertexInputSimple
{
float4 Position : POSITION0;
float2 TexCoord : TEXCOORD0;
};