Again, full credit to everyone at The Oven, I just went back through their 5-WOW64.script file.
Tested working as of 10.0.586.0, should work for later versions unless Win10PESE changes. Let me know if you have any problems and I will try to help!
Prerequisites
1) Untouched WinRE.wim/WinPE.wim (add your own desired modifications after)
2) 64-bit Win10PE SE image (by The Oven, google it)
Quickest way is to download a fresh Windows 10 ISO from Techbench, extract WinRE.wim from it, and use the ISO to build your Win10PE SE image. The image from which WoW64 originates must be the same version as the target image!
The steps
1) Delete \Windows\WinSxS from your own image. You will probably need to use an app such as Unlocker. Note that this will take a while.
2) Copy in file dependencies from the Win10PE SE image to your own image.
- The entirety of \Windows\WinSxS
- The entirety of \Windows\System32\Catroot (merge with existing image)
- The entirety of \Windows\SysWOW64
- Alternatively, copy the files listed under 'CopySysWoW' and 'DirCopy' sections in the 5-WoW64.script. This may be a 'cleaner' way of doing it but I haven't done this myself.
- \Windows\System32\wow64.dll
- \Windows\System32\wow64cpu.dll
- \Windows\System32\wow64win.dll
- \Windows\System32\loadWOW64.exe
- HKLM\system\controlset001\control\session manager\BootExecute\
- HKLM\software\microsoft\windows\currentversion\sidebyside\
- HKLM\software\wow6432node\
- HKLM\software\classes\wow6432node\
- HKLM\software\Microsoft\Windows\CurrentVersion\SMI\WinSxS Settings\
Done! If you want to trim the size down, there are elements in the Win10 PE SE project that you can remove (eg AutoIT scripting app if you don't use it, control panel elements, etc etc)
FAQ
Error 0xc0000034 when trying to start 32-bit apps
- Check that the key at BootExecute has been added properly (this is necessary to launch loadWOW64.exe at startup)
- Check that you have added everything at HKLM\software\microsoft\windows\currentversion\sidebyside\
- Check that the SysWOW64 files and System32 files in your image are the same version (right click > properties on shell32.dll for example). Eg if you tried to add SysWOW64 from 10.0.240.0 to a 10.0.586.0 target, you would get a BSOD like this.
- Check that you have added everything at HKLM\software\classes\wow6432node\CLSID
- Can occur if you deleted the side-by-side regkeys before adding those from the 10 PE SE image. Don't do this!
- Can probably also occur in other scenarios. As you can imagine, deleting and rebuilding WinSxS is a rough way of doing it, but I haven't had any problems with transferring their WoW64 implementation to my own image this way yet.
- Probably due to deleting WinSxS during this guide, hence my recommendation to perform this on a scratch image, then add other modifications after.
Edited by misty, 18 December 2018 - 10:02 PM.