Seems this:
[pascal]pd3dDevice.SetStreamSource(0, m_pVB, SizeOf(TPointVertex),SizeOf(TPointVertex)); [/pascal]
should be:
[pascal]pd3dDevice.SetStreamSource(0, m_pVB, 0, SizeOf(TPointVertex)); [/pascal]

So you rendering starts from 0 item, not 1st. Your code can generate AV (trying to read from other's process memory).

Have you looked at mine conversion of PointSprites from DirectX9 SDK? Link to near download all Direct3D 9.0 samples (summer 2003) for Delphi item