Aaight, the code works fine. The issue was that the lock calls need to be passed pointers to the WORD pointer.

So... &vertices, and &indices16.

However, if anyone has a better way to do this... please let me know