.netregistrywow64registry-virtualization

Cannot bypass registry virtualization


I have created a subkey in the registry, HKEY_LOCAL_MACHINE\SOFTWARE\MyApp\APIConnector. When I load this subkey using Visual Studio's Immediate windows while no launched app is running, I can read the subkey.

However, when my application looks for HKEY_LOCAL_MACHINE\SOFTWARE\MyApp\APIConnector, it cannot find it. It cannot even find HKEY_LOCAL_MACHINE\SOFTWARE\MyApp. It's as if there's a different

However, when I am running an application in debug mode and it is paused, the exact same code cannot find HKEY_LOCAL_MACHINE\SOFTWARE\MyApp let alone HKEY_LOCAL_MACHINE\SOFTWARE\MyApp\APIConnector.

After a bit of digging around, it looks like I've fallen victim to registry virtualization. So I added a manifest that makes the app require administrator rights (UAC dialog), but registry virtualization is still occurring. Microsoft documentation on the matter asserts that this should not be the case. Help!


Solution

  • Perhaps you're being affected by Wow64 registry redirection instead (or along with?) registry virtualization:

    Windows sure has a lot of smoke and mirrors going on when accessing the registry.