If you have a Ryzen CPU or Intel Kaby Lake and haven’t wanted to upgrade to Windows 10, there’s a chance you might be locked out of future Windows updates and need a creative workaround. Luckily one exists, and all the digging around the dll files has already been done for you.
Apparently a March 16 update includes the following line in the changelog:
Enabled detection of processor generation and hardware support when PC tries to scan or download updates through Windows Update.
Github user Zeffy has come up with a few solutions for you, and has documented his whole cyber-sleuthing process. If you want to skip straight to the patches which fix the issue, head here. Zeffy recommends you create a system restore point before beginning.
But all the information is included on how these fixes came to be, so you can also try doing them yourself — either because something went wrong, or for education, or for fun. These fixes aren’t for novice computer users, but I’ll try to include some extra information to bring the skill requirements for this down a notch.
The first (as well as easiest & best) method applies to Windows 7 x64 users:
Patch wuaueng.dll and change dword_600002EE948 (see this line) which is at file offset 0x26C948, from 0x01 to 0x00. This makes IsDeviceServiceable(void) jump over its entire body and return 1 (supported CPU) immediately. This is my preferred method. Note: these offsets are only for the Windows 7 x64 version.
To edit these dll files, you’ll need a decompiler like ILSpy, .NET Reflector, or dotPeek. Then you’ll have to use a program such as Visual Studio to edit the code. For more information on these tasks, check out the Wikihow.
The second method is below:
Patch wuaueng.dll and nop out all the instructions highlighted here in IsDeviceServiceable(void), this will enable the usage of the ForceUnsupportedCPU of type REG_DWORD under the registry key HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdateTestScan (you will most likely have to create this registry key). Set this value to 0x00000001 to force unsupported CPUs, and back to 0x00000000 to change the behaviour back to default. You will probably need to restart your PC or restart the wuauserv service in order for changes to apply. This behaviour is undocumented and could be removed in future updates.