I intended to have multiple windows with shared resources. I attempted to implement it [blindly] by creating a second HWND and using IDirect3DDevice9::CreateAdditionalSwapChain(). Is this is correct method of implementation?

I have two windows, but I don't know how to differentiate rendering between them. The engine window is GREEN from the call to draw_quad(), but RED when I uncomment IDirect3DDevice9::BeginScene() and IDirect3DDevice9::EndScene(). The second window remains black.

Code:
do {
	if (v(key_esc)) {
		break;
	}

	IDirect3DDevice9* pExtraDevice;
	g_pSwapChain->GetDevice(&pExtraDevice);
	//pExtraDevice->BeginScene();
	pExtraDevice->Clear(0, nullptr, D3DCLEAR_TARGET, D3DCOLOR_RGBA(255, 0, 0, 255), 1.0f, 0x00000000);
	//pExtraDevice->EndScene();
	g_pSwapChain->Present(0, 0, 0, 0, 0);
	pExtraDevice->Release();

	draw_quad(nullptr, _vec(0.0f, 0.0f, 0.0f), nullptr, &v(screen_size), nullptr, (COLOR*)_vec(0.0f, 255.0f, 0.0f), _VAR(100), _VAR(0));
} while (engine_frame());