Q> Currently, I get "invalid parameters" HRESULT when calling CreateDevice a second time. It works fine if one of the windows is fullscreen, but not both.
Since you created two different devices using the same adapter identifier, use the adater identifier as 1 for the second call to the convener!
An important step that needs to be performed after creating device 2 or 3 or 4 ... is to reset device one (default device identifier is 0).
Create Device 1 Create Device 2 ........ ........ Create Device n Reset Device 1
To simplify your life and another, I added a working code to support multiple monitors in full screen mode (DirectX 9). Please note that I added / changed a few lines of code from the sample code taken from the web link you provided in your question.
#define STRICT
source share