You probably need to make sure that when the new device list is evaluated, all the old handles are removed to the old devices in the native code, otherwise you might find you run out of file handles under unix systems. I don't know how this handles opening devices in exclusive mode on windows either?
but other than that, it seems like a reasonable work around. Under unix this would be the way to do it anyways, under windows there is a listener interface for the directx bindings IIRC, but that's for a more permanent solution, if anyone fancies the task

Endolf