Windows Drivers – How to Re-enable S5WakeOnLan Setting for Realtek NIC Driver

driversrealtekwake-on-lanwindows

To be able to wake up a PC from the S5 'shut down' state, the OS has to prepare the NIC during system shutdown. For Realtek NICs, this is done by the "Realtek PCIe GBE Family Controller" driver, but only if the option S5WakeOnLan "Shutdown Wake-On-Lan" is enabled. This setting is located at HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318} in an unpredictable subkey between 0000 and 0012.

I have discovered that it's the driver's .inf file that controls what the default value for this option is, and whether it's even visible in the UI. In an old sample from 2008, the setting simply defaulted to '1' and was made visible for all models. Recent versions have categories for individual NIC models, like

  • [s5wol.reg] – visible and defaults to '1'
  • [s5wol.reg] – hidden and defaults to '0' (faulty? found in 2015-04-06)
  • [s5wolhidedisable.reg] – hidden and set to '0'
  • [s5wolhideenable.reg] – hidden and set to '1'
  • [s5wolhidetype2.reg] – hidden and set to '2' ?!?!

I have done a survey of the PCs I manage, and found that I'm dealing with all of the above. Initially, I just manually set S5WakeOnLan to 1 and it worked just fine, for over a year. A few old Vista PCs sometimes hang during power-on or reboot, which may be the reason why Realtek disabled it (or it might be caused by something unrelated). I was not able to find relevant documentation.

The problem is that everytime the OS decides to reinstall the NIC's driver (upgrade to Win10, driver update, every major OS Update which seems to be twice a year), the setting reverts to default, and the PC can no longer be turned on remotely. I have already had to fix this several times across all the affected WIn10 machines, and it's turning out to be an ongoing burden.

Half a year is enough for me to forget that this is still a thing, so when it does happen, it screws up my maintenance schedule, since I have to wait a day+ for the PC to be turned on physically, then patch the registry remotely, then wait again for the PC to be turned off and on, so that the registry change takes effect. I'd like to get rid of this issue, but so far the only workaround I came up with is a Group Policy Registry rule that shoves S5WakeOnLan = 1 into every one of those numeric subkeys.

Best Answer

The long-term solution is to have Microsoft update the driver packages hosted on Windows Update servers, to versions new enough that they don't exhibit the problem anymore. As time passed, I have observed this actually happening, gradually. Today I concluded that all of my originally affected PCs now expose the setting in the driver UI. Some still default to disabled, but changes to the setting should now be retained across OS upgrades. So for me, the issue is resolved.

Though I still have no idea how to report faulty packages to Microsoft in a way that would get them fixed.

Related Topic