How do you create the texture ?
For example, this works for me :
ID3D11Texture2D* backBuffer;
ID3D11Texture2D* pTexture2D;
// then
m_pDXGISwapChain1->GetBuffer(0, IID_PPV_ARGS(&backBuffer));
D3D11_TEXTURE2D_DESC texDesc = {};
backBuffer->GetDesc(&texDesc);
texDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
texDesc.MiscFlags = 0;
texDesc.Usage = D3D11_USAGE_DEFAULT;
texDesc.BindFlags = D3D11_BIND_RENDER_TARGET | D3D11_BIND_SHADER_RESOURCE;
// Format = DXGI_FORMAT_B8G8R8A8_UNORM (87)
m_pD3D11Device->CreateTexture2D(&texDesc, nullptr, &pTexture2D);
SafeRelease(&backBuffer);
Then, for testing, I can call pTexture2D->QueryInterface to get IDXGISurface then CreateBitmapFromDxgiSurface to draw things inside the texture,
then finally CopyResource to copy the texture to the SwapChain :
m_pDXGISwapChain1->GetBuffer(0, IID_PPV_ARGS(&backBuffer));
m_pD3D11DeviceContext->CopyResource(backBuffer, pTexture2D);
SafeRelease(&backBuffer);