Just as an experiment try using:
CheckDeviceType( D3DADAPTER_DEFAULT, D3DDEVTYPE_REF, D3DFMT_X8R8G8B8, D3DFMT_X8R8G8B8, false );
The reference device is just what it says it, it should behave exactly the same as a fully compliant DirectX compatible graphics card. If
CheckDeviceType
works fine on the Reference device, but fails on the hardware device then it's possible you have some bad drivers.
If the reference device works, then to eliminate any other possibilities you can also make sure to use the same format for both the Display and BackBuffer formats, you can also get the current display format (guaranteed to work, since it's already set) like so:
D3DDISPLAYMODE dispMode;
m_Device->GetAdapterDisplayMode(0, &dispMode);
m_Device->CheckDeviceType( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, dispMode.Format, dispMode.Format, false );
Also I think you can only use D3DFMT_UNKOWN for windowed mode (in which case it just uses the current display format) and the examples I gave above check for compatibility with fullscreen mode to help avoid issues with converting from the display format you supply, to the display format in windows.