WriteStringはWrite( pstr, lstrlen(pstr) );だけど、\0含んでたりしないか?

それでもダメなら、間にデバッグ系のプロキシ噛ませて、
何吐いているか確認したら?