Transacted Registry (TxR) possibly broken with FSLogix Profile Container-enabled users

velartis.md 1 Reputation point
2022-12-22T12:24:27.1+00:00

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:
275414-fslogixuser-fail.png

And here the output from the very same RD-server using a local user without any FSLogix containers:
275369-localuser-pass.png

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.

FSLogix
FSLogix
A set of solutions that enhance, enable, and simplify non-persistent Windows computing environments and may also be used to create more portable computing sessions when using physical devices.
371 questions
No comments
{count} votes