IDirect3DDevice9::Resetで、ウィンドウフルスクリーンを切り替えようとすると、
D3DERR_INVALIDCALLが返され、失敗してしまいます。

ウィンドウ、フルスクリーン共に起動時の初回デバイス作成は上手くいきます。
デバイス作成のパラメータはこんな感じです。
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp, sizeof(d3dpp));
if(fullScreen) {//フルスクリーンモード
D3DDISPLAYMODE dispMode;
Pd3d->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &dispMode);
d3dpp.Windowed = FALSE; //ウィンドウモード
d3dpp.BackBufferCount = 1; //バックバッファ数
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;//フロント/バック切り替え方式
d3dpp.BackBufferFormat = dispMode.Format; //バックバッファ形式
d3dpp.BackBufferWidth = 800;
d3dpp.BackBufferHeight = 600;
d3dpp.EnableAutoDepthStencil = TRUE; //深度ステンシルバッファ
d3dpp.AutoDepthStencilFormat = D3DFMT_D16; //深度ステンシルバッファ形式
} else {//ウィンドウモード
d3dpp.Windowed = TRUE; //ウィンドウモード
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN; //バックバッファ形式
d3dpp.BackBufferCount = 1; //バックバッファ数
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;//フロント/バック切り替え方式
d3dpp.EnableAutoDepthStencil = TRUE; //深度ステンシルバッファ
d3dpp.AutoDepthStencilFormat = D3DFMT_D16; //深度ステンシルバッファ形式
}
Pd3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, HWnd, D3DCREATE_MIXED_VERTEXPROCESSING | D3DCREATE_MULTITHREADED, &d3dpp, &PDevice);

ウィンドウフルスクリーン切替時は、作成したLPDIRECT3DTEXTURE9を解放して、
デバイス作成時と同じD3DPRESENT_PARAMETERSでResetしています。
なんで失敗してしまうのでしょうか?