Transacted Registry (TxR) possibly broken with FSLogix Profile Container-enabled users
Hi,
we recently updated PDF-XChange after which we got introduced to this issue.
The program attempts to save its settings in a Transaction to the Registry when exiting, which now always fails.
I isolated the issue to RegCreateKeyTransacted failing with failing with 6801
(ERROR_RM_NOT_ACTIVE
).
To demonstrate/reproduce the issue on various servers. I made a small application; source and release are on GitHub. To compile the project, a recent Visual Studio version is required (C++17 support).
Note: The original application is from CodeProject and was changed a bit. I undid the indirection for calling the various APIs and made the output flow more adequate for the this new use case.
Here is how the app running and failing on a RD-server using user with FSLogix profile container:
And here the output from the very same RD-server using a local user without any FSLogix containers:
Also quite interesting is that, the Example application creates a single Transaction making both File and Registry changes. And when Commiting, only TxF actions are performed while TxR actions fail. Effectively breaking transaction guarantees.