Surface Pro 3: Workaround for Post-Wakeup Wi-Fi Degradation

Like its predecessor, the Surface Pro 3 has been plagued by a number of Wi-Fi issues since its release. Microsoft has since released firmware and driver updates that have alleviated some of the problems (e.g. link speed maxing out at 72 Mbps on the 2.4 GHz band), but some issues remain.

Even with all patches installed as of this writing, the Wi-Fi on my Surface Pro 3 still degrades after resuming from connected standby. While the driver reports a normal link speed, actual throughput drops to a fraction of what it should be, and the connection is riddled with random stuttering and latency spikes, with pings to LAN hosts jumping from the normal 1-2 ms to anywhere from 400 to 2,000 ms. This problem is not obvious if one is merely browsing the Web, but attempting to stream, say, recorded TV on Windows Media Center results in an infuriating buffering mess.

Rumor has it that disabling connected standby (either via a registry setting or as a side effect of installing the Hyper-V hypervisor) resolves all Wi-Fi problems on the Surface Pro 3. However, this is hardly acceptable for those of us who want our Surface to behave like a tablet as opposed to a miniature desktop.

In my experience, resetting the Marvell AVASTAR wireless adapter fixes all issues until the Surface next goes to sleep. However, manually disabling and reenabling the adapter every time I woke up my Surface to stream video got old really quickly, so I figured out a way to automate this.

The Workaround

We can use the Task Scheduler to set up a task that automatically resets the Wi-Fi adapter whenever the Surface Pro 3 resumes from connected standby. Here’s how:

  • Open the Task Scheduler.
  • Right click the Task Scheduler Library folder, and select Create Task.
  • Configure the new scheduled task as follows:
    • General tab:
      • Name: Reset Wi-Fi
      • When running the task, use the following user account: SYSTEM
      • Run whether user is logged on or not
      • Run with highest privileges: Yes
      • Configure for: Windows 8.1
    • Triggers tab — create a new trigger configured as follows:
      • Begin the task: On an event
      • Log: System
      • Source: Kernel-Power
      • Event ID: 507
    • Actions tab — create a new action configured as follows:
      • Action: Start a program
      • Program/script: %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\powershell.exe
      • Add arguments: -Command “Restart-NetAdapter -Name Wi-Fi”
    • Conditions tab:
      • Start the task only if the computer is on AC power: No

4 thoughts on “Surface Pro 3: Workaround for Post-Wakeup Wi-Fi Degradation”

  1. Thanks Nick, this really saved my bacon. I was having constant issues with video chat with my Surface, and now everyone says it’s perfect!

  2. Hi Nick,

    i tried your instructions above but unfortunately the “SYSTEM” account disables the option to “Run whether the user is logged in or not”. Did i miss something?

    1. Hi Kaushik, I didn’t experience this myself, but any account with administrative rights should work. Try using an admin account other than SYSTEM and let me know if that helps. Good luck!

Leave a Reply

Your email address will not be published. Required fields are marked *