Windows – Cannot install Hyper-V platform on Windows 8.1 Pro

hyper-vinstallationvirtualizationwindows 8windows 8.1

I have a problem related to installing Hyper-V on Windows 8.1 Pro x64.

I decided to experiment with some Windows Phone 8 programming. In order to install the simulator I need to have Hyper-V platform installed. I've recently bought Lenovo Yoga 2 Pro. It came with window 8.1. I've updated it to 8.1 Pro. The CPU is Core i7-4500U so it supports needed CPU virtualization instructions (additionally enabled in the BIOS).

When I enable Hyper-V platform windows feature everything is installed just fine (or so it seems) without any errors or warnings. I get the "Windows needs to reboot your PC to finish installing the requested changes." prompt and I click on "restart now" button. And here the things get weird. During the restart I see the common "adding/configuring new feature" windows message until the progress reaches 93%. Then some sort of an error occurs and I get a message saying the changes could not be applied and the system is "undoing changes". As you can guess after the system boots the Hyper-V platform is not installed.

I've done some digging about what has gone wrong and I found the following lines in the logs (C:\Windows\Logs\CBS)

2013-12-12 21:59:31, Info                  CSI    000000a8 Begin executing advanced installer phase 38 (0x00000026) index 124 (0x000000000000007c) (sequence 163)
    Old component: [l:0]""
    New component: [ml:318{159},l:316{158}]"Microsoft-Hyper-V-Drivers-VmSwitch, Culture=neutral, Version=6.3.9600.16423, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=amd64, versionScope=NonSxS"
    Install mode: install
    Installer ID: {81a34a10-4256-436a-89d6-794b97ca407c}
    Installer name: [15]"Generic Command"
2013-12-12 21:59:31, Info                  CSI    000000a9 Performing 1 operations; 1 are not lock/unlock and follow:
  (0)  LockComponentPath (10): flags: 0 comp: {l:16 b:7534f8ab74f7ce015f0000006002fc01} pathid: {l:16 b:7534f8ab74f7ce01600000006002fc01} path: [l:226{113}]"\SystemRoot\WinSxS\amd64_microsoft-hyper-v-drivers-vmswitch_31bf3856ad364e35_6.3.9600.16423_none_5a097ab253e42b0f" pid: 260 starttime: 130313519618461394 (0x01cef774a64a0ed2)
2013-12-12 21:59:31, Info                  CSI    000000aa Calling generic command executable (sequence 1): [30]"C:\windows\System32\netcfg.exe"
    CmdLine: [51]""C:\windows\System32\netcfg.exe" -e -c s -i VMS_VSF"
2013-12-12 21:59:31, Info                  CSI    000000ab Performing 1 operations; 1 are not lock/unlock and follow:
  (0)  LockComponentPath (10): flags: 0 comp: {l:16 b:a0f91bac74f7ce01610000006002fc01} pathid: {l:16 b:a0f91bac74f7ce01620000006002fc01} path: [l:234{117}]"\SystemRoot\WinSxS\x86_microsoft.windows.s..ation.badcomponents_31bf3856ad364e35_6.3.9600.16384_none_cd3183f2deb856d2" pid: 260 starttime: 130313519618461394 (0x01cef774a64a0ed2)
2013-12-12 21:59:31, Info                  CSI    000000ac Creating NT transaction (seq 3), objectname [6]"(null)"
2013-12-12 21:59:31, Info                  CSI    000000ad Created NT transaction (seq 3) result 0x00000000, handle @0x3ac
2013-12-12 21:59:31, Info                  CSI    000000ae@2013/12/12:19:59:31.610 Beginning NT transaction commit...
2013-12-12 21:59:31, Info                  CSI    000000af@2013/12/12:19:59:31.626 CSI perf trace:
CSIPERF:TXCOMMIT;28645
2013-12-12 21:59:31, Error                 CSI    000000b0 (F) Done with generic command 1; CreateProcess returned 0, CPAW returned S_OK
    Process exit code 41001 (0x0000a029) resulted in success? FALSE
    Process output: [l:74 [74]"Trying to install VMS_VSF ...




... failed. Error code: 0x8004a029.




"][gle=0x80004005]
2013-12-12 21:59:31, Info                  CSI    000000b1 Calling generic command executable (sequence 2): [30]"C:\windows\System32\netcfg.exe"
    CmdLine: [50]""C:\windows\System32\netcfg.exe" -e -c p -i VMS_PP"
2013-12-12 21:59:31, Info                  CBS    Progress: UI message updated. Operation type: Foundation. Stage: 1 out of 1. Percent progress: 93.
2013-12-12 21:59:31, Info                  CBS    Winlogon: TiCoreOnCreateSession has been called
2013-12-12 21:59:35, Info                  CSI    000000b2 Done with generic command 2; CreateProcess returned 0, CPAW returned S_OK
    Process exit code 0 resulted in success? TRUE
    Process output is throttled for successful Generic Commands
2013-12-12 21:59:35, Info                  CSI    000000b3 Calling generic command executable (sequence 3): [30]"C:\windows\System32\netcfg.exe"
    CmdLine: [51]""C:\windows\System32\netcfg.exe" -e -c p -i VMS_VSP"
2013-12-12 21:59:35, Info                  CSI    000000b4 Done with generic command 3; CreateProcess returned 0, CPAW returned S_OK
    Process exit code 0 resulted in success? TRUE
    Process output is throttled for successful Generic Commands
2013-12-12 21:59:35, Error      [0x018007] CSI    000000b5 (F) Failed execution of queue item Installer: Generic Command ({81a34a10-4256-436a-89d6-794b97ca407c}) with HRESULT HRESULT_FROM_WIN32(14109).  Failure will not be ignored: A rollback will be initiated after all the operations in the installer queue are completed; installer is reliable (2)[gle=0x80004005]

For a reason unknown to me the "C:\windows\System32\netcfg.exe" -e -c s -i VMS_VSF" operation fails and I guess this is the source of the problem.
Here is a link to the log snipped in SkyDrive.

Some more additional information

  • I've tried to "solution" described here but I think this is a solution for a different issue.
  • I've tried installing Hyper-V using powershell but I get the same error: Enable-WindowsOptionalFeature -Online –FeatureName Microsoft-Hyper-V -All
  • In case you are wondering I can install Hyper-V Management Tools.

UPDATE1:
I'm continuing my quest for a solution and I found information that might me useful. I found a few web pages saying that "Error code: 0x8004a029 is NETCFG_E_MAX_FILTER_LIMIT". From MSDN:

NETCFG_E_MAX_FILTER_LIMIT Indicates that the application is trying to
install a filter device, but the maximum number of filter devices that
the system supports has already been reached.

I cannot yet find reliable information that maps this error code to that constant. But this looks like a possible reason for the problem. In this "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network{4d36e974-e325-11ce-bfc1-08002be10318}" registry entry I have 14 records (by some sources this is maximum possible count of windows filter drivers). In this registry entry according some sources I could find the count of installed windows filter drivers.

I guess I had to clean the Lenovo bloatware better. It is getting late here now, i'll write tomorrow with details.

p.s. I'm using expressions like "a few web pages" and "some sources" because I need at least 10 reputation points to post more than 2 URLs. If you search the web for those specific keys and codes you'll find the sources I'm referring.

Best Answer

I've managed to find a solution of the problem.

First thing what was the problem: The one described in the UPDATE1 of the question. I've reached the max possible count of the installed system filter drivers. What kind of applications can installed filter drivers: firewalls, VPN clients, VM platforms (obviously;), some monitoring applications. In this link I've found useful information and PowerShell scripts related to filter drivers.

Solutions:

  • Uninstall software that has previously installed filter drivers.
  • Increase the count of the maximum allowed system filter drivers. You can do this by changing the value of the "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\MaxNumFilters" registry entry. I've personally set the value to 0x14 (hex). I've chose this solution.

Although I've encountered this problem when installing Hyper-V platform as you can guess this is a very generic error and it can be triggered when installing any kind of software that depends on system filter drivers (e.g. VPN clients which I've installed before the Hyper-V platform).

Related Question