When using the effect system there's no need to create and bind the buffers on your own. Updating is done through the effect's variables (in this case I guess using ID3DX11EffectVariable::SetRawValue) and then calling ID3DX11EffectPass::Apply().
Different tex-coords for the mask, provided through the vertices already, transformed or reconstructed (as Servant has shown) are warranted here. Maybe you wouldn't need those triangles at all: If you look at it as a post-process (it sounds like you're after some sort of vignetting) you just draw a screen quad/triangle and do all the magic in the fragment shader.
Here is an example I wrote for D3D11, hopefully providing some food for thought.
In D3D11 a index of -1 has a special meaning (see here, last paragraph "Generating Multiple Strips"). IIRC in OpenGL you can define that value arbitrarily. I wonder if you even get something in the geometry shader then, since it operates on primitives. If that is the case, try another number, e.g. -2.
You can grab the index in the vertex shader with SV_VertexID and pass it along. Maybe that helps.