If somebody could have a look at the patch, or try it out or give me any other feedback, that would be appreciated.
I'm confused: + if (!This->device->buffers) + IKsBufferPropertySetImpl_Create( (This->device->buffers[This->device->nrofbuffers - 1]), (&This->device->buffers[This->device->nrofbuffers - 1]->iks)); Aren't you dereferencing a NULL pointer here? You've just ensured This->device->buffers is NULL, so accessing it is guaranteed to crash.
+ WARN("IID_IKsPropertySet\n"); + return E_NOINTERFACE; What does that warning tell us? I'd prefer you have something a bit more descriptive.
Also, the original code uses tabs while you're using spaces. Please stick with the existing indentation style. --Juan