Vertex format has nothing to do with Pixel Shader, but with
Vertex Shader. For example - pixels don't have normals.
Your vertex format Position | Normal | Diffuse | Texture would correspond to a Vertex Shader input structure in a form similar to this:
struct VS_INPUT{ float4 Position : POSITION; float4 Normal : NORMAL; float4 Color : COLOR; float2 UV1 : TEXCOORD0;};
Your chosen testing task - invert the colors of a texture - is a task for pixel shader. If you want to do just this, you wont need to write any Vertex Shader at all, DirectX will use the fixed pipeline for vertex transformations.
You would just write a pixel shader with this input:
struct PS_INPUT{ float4 Diffuse : COLOR; float2 UV1 : TEXCOORD0;};
and use UV1 to do texture lookup, invert the color and return it as PS's output (or eventually combine it with diffuse color which also is in the input structure).
For texture lookup you'll need a sampler, a texture and then just the tex2D function.