BufferCount = 2,
Sorry to contradict you here Stuntdk. If you read the MSDN documentation it says :
A value that describes the number of buffers in the swap chain. When you call IDXGIFactory::CreateSwapChain to create a full-screen swap chain, you typically include the front buffer in this value. For more information about swap-chain buffers, see Remarks.
That implies that including the front buffer your BufferCount = 1, because you typically include the front buffer in this value. Also, if BufferCount was the back-buffer count, then you should be able to set it to zero, which you can't. If you try setting it to zero, your application will throw an invalid call exception.