I love my Surface Pro, but since purchasing my Pro 3 in early August I have had chronic Wifi issues. In particular the Wifi fails to connect when coming out of sleep mode. Sometimes I just cannot get the device to connect a network or loose a connection after a period of time. Sometimes these issues force me to reboot to make a connection.
On top of the Wifi issues bringing the device out of sleep mode takes about 20-30 seconds. Combined these two issues left me frustrated. I kept reading the articles claiming the latest firmware updates fixed these issues, only to continue seeing the problems. I was frustrated and started to resolve myself to the despair of trading in my Surface Pro for a new one, thinking I must have a hardware problem. I knew I was not alone because I discussed the issues with several friends and found threads in various Surface forums.
Fortunately at last week's MVP Summit I attended a session with the Surface engineering team. What a fascinating session. I left feeling great about the quality built into the Surface Pro, and with a connection to help me with my WiFi issues.
The engineers asked me if I had Hyper-V enabled. I said no, because I had never turned enabled it. However I had installed the Visual Studio Windows Phone SDK. The phone SDK requires Hyper-V to run the local phone emulator and of course auto enables the service. This meant Hyper-V was enabled on my machine without me realizing it.
It turns out there is a Hyper-V bug on Windows 8.1 causing both issues. Once I turned Hyper-V off connectivity and immediate wake ups work as expected. The issue is not unique to the Surface Pro, but affects all Windows 8.1 machines. You can read more about the bug in a Microsoft knowledge base article, http://support.microsoft.com/kb/2973536.
When you toggle Hyper-V you will need to reboot your machine. If you need to use Hyper-V you will need to manually connect the network. For me this means disconnecting and reconnecting or toggling airplane mode off and on. It is a pain, but should keep you online. If you are like me and rarely use virtual machines you should run without Hyper-V enabled.
The easiest way to manage Hyper-V is through the control panel. Select Programs, then select Programs and Features. Here you can Turn Windows Features On or Off. Select Hyper-V from the list and check or uncheck the box to turn it on or off.
My woes were the result of this bug, which was introduced early because I installed the Windows Phone SDK almost as soon as I got home from the store. I never use the SDK, but wanted to install it because it provides some browser debugging tools. You may be in a similar situation and need to weigh trade-offs for your development needs. So stop blaming your Surface Pro and shift your frustration to Hyper-V.