You can do back buffer locks, and write the pixels directly, but then you have to worry about bpp, etc. You can also create a vertex buffer using transformed vertices with a diffuse color, and plot the vertices with the D3DPT_POINTLIST flat. This will basically draw 1 pixel per vertex at the location specified, with the color speficied.

For standard Blts, most people use a standard transformed quad, two triangles in the shape of a square.

Z.