Can't query ID3D10Multithread interface

When I am running unity app like Palace (which is for OSVR), can’t QueryInterface for ID3D10Multithread.
In my code, it fails to call this function as below:

        CComQIPtr<ID3D10Multithread> p_mt(m_D3D11Context);
        p_mt->SetMultithreadProtected(true);

Actually, p_mt returns NULL here.

The error occurs here:
CComQIPtr p_mt(m_D3D11Context);
It can be rewritten as:
HRESULT hr = m_D3D11Context->QueryInterface(__uuidof(ID3D10Multithread), &p_mt);
And the result returns QUERY FAILED.

Why did the query fail?

I call m_D3D11device->GetCreationFlags() when running Unity app, it returns D3D11_CREATE_DEVICE_SINGLETHREADED.
Then, I run the Unity app with parameter “-force-d3d11-no-singlethreaded” which forces DirectX 11.0 to be created without a D3D11_CREATE_DEVICE_SINGLETHREADED flag.

After that, I can see the call of QueryInterface is successful and p_mt->SetMultithreadProtected(true) is successful by checking p_mt->GetMultithreadProtected() returns true.