Regarding the GUIDs, some tests would be great, e.g. showing that d3d8 does not support them, but dx8vb does.
I somewhat doubt this is necessary, but sure, why not. Should be easy enough to add.
You'll have a mess on your hands with various getter functions. Luckily the IDirect3DResource8::{Get/Set}PrivateData methods are helpful for textures, surfaces, swapchains and buffers, and in d3d8 shaders are DWORD handles and vertex declarations don't exist. So you shouldn't have to maintain your own stateblocks.
D3DSPD_IUNKNOWN is handy for being notified of the destruction of a resource. You probably do have to keep your own refcounting and test if it works the same way as in real d3d8.
Yes for now it's easy, but it will get more complicated. I still hope I can deal with that, though. Thanks for the tips.
Regards, Fabian Maurer