This reimplements all logic from the server in kernelbase, which is needed because Nt*Key ignores KEY_WOW64_32KEY. Unfortunately this requires a lot of server calls.
The full branch can be found here
https://gitlab.winehq.org/sbaars/wine/-/tree/shared-classes-new
The old approach that doesn't duplicate code to kernelbase can be found here
https://gitlab.winehq.org/sbaars/wine/-/tree/shared-classes-old
I ran make_requests by the way, not sure if we should still leave that out with the gitlab workflow.
--
v6: kernelbase: Recursively obtain the Wow6432Node parent.
kernelbase: Add support for shared registry keys.
kernelbase: Factor out the common parts of open_key() and create_key().
kernelbase: Reimplement create_key() using open_subkey().
kernelbase: Factor out opening a subkey.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1445