You can define your own FVF (Flexible Vertex Format) so the vertex structures consist of position and diffuse properties...
#define MYVERTEX_FVF (D3DFVF_XYZ | D3DFVF_DIFFUSE)
This is one of the first things you learn with DirectX, using vertex buffers to draw primitives.
I think FVF are supported by the programmable pipeline in DX9, although they are generally used within the Fixed-Function Pipeline, and so to get them working in shaders I think you have to convert them to vertex declartions.
The D3D function 'CreateVertexDeclaration' might be what you are looking for.