DDSURFACEDESC2 ddsd;
LPDIRECTDRAWSURFACE7 lpdds;

lpdds->Lock(NULL, &ddsd, DDLOCK_WAIT, NULL);
BYTE* buf1 = ddsd.lpSurface;
lpdds->Unlock(NULL);

lpdds->Lock(NULL, &ddsd, DDLOCK_WAIT, NULL);
BYTE* buf2 = ddsd.lpSurface;

↑のプログラムでLockとUnlockでエラーが出ない時
buf1 と buf2 の値は常に等しいと考えて大丈夫ですか?