> Direct3DDevice9::DrawPrimitiveUP に渡す頂点データは、呼び出しの後も保持する必要はありません。
> Microsoft Direct3D は、呼び出しから戻る前に、そのデータへのアクセスを完了します。
ようするにDrawPrimitive呼ぶ度に内部で頂点バッファにコピーしてるって事だ。

2D/3Dのスプライトのような頻繁に書き換えるものならD3DPOOL_DEFAULTにD3DUSAGE_DYNAMICとD3DUSAGE_WRITEONLYをつけて頂点バッファを作れ。
そうするとAGPメモリに展開されてVRAMデータと同じ速度でレンダリングが行われつつシステムメモリと同じ速度で書き込みできる。

ロック時にD3DLOCK_DISCARDを指定すると、ドライバ内で自動的に新しいバッファを返してくるので、
更新>描画>更新>描画とやっても頂点バッファロック時に描画待ちとか発生せずにアクセスできる。