Behavior of glLockArraysEXT()?

What I want to know is what exactly happens if one calls glLockArraysEXT()…Is
A:The whole vertex buffer transformed then(don´t think so)?
Or is
B:Every drawn( rotated ranslated\scaled) vertex after this call cached and the result used again if it needs to be drawn again?

I think it works like B.However if it works like B I don´t understand why all 3d-engines(at least all good sources I looked at like q1,…) do some sort of batching and lock only a part of the usually HUGE vertex buffer for one Level).I think Q3 allows locking and rendering of about 4000(MAX) vertices at once(only if they have the same texture…).

If glLockArraysEXT() works like B. I think it would be faster to lock the whole vertex buffer at once and run faster cause you can throw all that memcpy,…stuff away which feeds only some of all vertices into the back-end of the renderer…

Any ideas?

[This message has been edited by XBCT (edited 08-06-2000).]