Some high-level questions:
* What about matrix and stateblock handles? Should we just move the whole table in one go?
* Should the table go in the ddraw object, or should it be global?
* Assuming that rendering to a given device is supposed to go to that device's RT specified at creation time, calling wined3d_device_context_set_rendertarget_views() from d3d_device_init() won't be enough to achieve that anymore. Presumably we need to do it on every draw call now.
* In fact, more generally, shouldn't state be specific to each device? That'll need more thought. We could probably use a per-device primary stateblock?
Matteo, Stefan, Henri, since you have a lot more background in this area, are there other potential concerns with having multiple devices that I might not be thinking of?