Releases: TimMangan/MSIX-PackageSupportFramework
v2025.12.28
December 2025 Updates
- RegLegacyFixup: Add new optional rule that allows packaged apps to write to HKLM. HKLM2HKCU rule allows these writes by redirecting these writes to a new key in the virtual registry under HKCU. This is similar to how App-V worked and help fill a major gap in compatibility. Several new intercepts were also added to this fixup to handle this new support, including RegQueryInfoKey, RegSetValue, and RegSetValueEx.
- PsfRuntime: When launching a process, if the caller includes Startup Attributes, integrate those with the attributes we must add to keep the process inside the container. This solves some longstanding issues with apps that start child processes that are console apps, especially using programming patterns typically seen in cross-platform (linux) apps that communicate by using stdin/stdout handles passed to the child this way.
- PsfRuntime: When launching a process, if it requests a working directory and it does not exist, create the virtual directory first.
- PsfRuntime: When launching a process, check if the caller already requested the process to start suspended. PsfRuntime normally suspends the new process so that it can inject PSF dlls into it and then resumes the process once that is done. With this change, if the caller requested suspension, PsfRuntime should not resume the process, but leave that to the calling process.
- PsfRuntime: Added experimental added logging (when logging level is increased for debugging) about the job object that a process in running in at its startup. This debugging will aid us in solving additional compatibility issues in certain apps.
- PsfRuntime: Updates to intercept CreateProcessAsUser to solve process launching issue.
- PsfRuntime: When starting a process, use the full path to the exe if known. Solves issue with how some apps start child apps and ApplicationAlias doesn't find it (for some unknown reason). In one known case, there was a bug in the open-source vendor code that was triggered, but we can fix is here.
- MfrFixup: Tweak to the logic in determining when to pre-create directories in the redirection area to ensure directories are created in certain situations.
- MfrFixup: Support added for customer scenarios that use traditional "Folder Redirection" techniques to redirect known folders using URL paths to file shares.
- EnvVarFixup: Handle the case of an app that calls GetEnvironmentVariable with a null name.
- PsfRuntime: In the previous release we added informational logging of COM calls by the app. In this release we solve an issue seen whereby the case of the COM Guids were important. The MMPT converts these to lower case and we now reconvert them to upper case when called by the app to solve this issue. Eventually this code may move to a new ComFixup dll.
V.2025.09.19
- Added new psfJson configuration option "psfDebugLevel" to the config.json file rather than need to use release versus debug binaries for additional logging. All logging is now available via the release binaries. See https:/github.com/TimMangan/MSIX-PackageSupportFramework/wiki/Config.Json for the table of values.
- Added new informational intercepts in PsfRuntime for the APIs CreateNamedPipeA/W. This is informational only at this time, the calls are logged so that we can determine if the APIs need to be added to the MfrFixup.
- Added new informational intercepts in PsfRuntime for APIs associated with COM initialization and loading. This is informational at this time, so that we can determine if the APIs need a potential new ComFixup.
- Updated the table of folder mappings in MfrFixup for some special case folders.
v2025.08.02
-
Small cleanups in RegLegacyFixup for edge conditions.
-
Changes in MfrFixup to improve support in FileSystemWriteVirtualization scenario with calls to GetFileAttributes/Ex
-
Add logging support (only) for DeviceIoControl to MfrFixup in Debug mode. We need to determine if an intercept is needed for this API.
-
Change in DynamicLibraryFixup for an unusual case where LoadLibraryEx is called with a special option to ignore the path provided for the dll and only look in the search folders.
-
Reduced some debug logging in MfrFixup and RegLegacyFixup to reduce the amount of output.
-
Applied fix to logging to solve potential issue with messages exceeding 1024 characters in length.
-
Adjustments for wide/narrow versions of data structure used in FindFirstFileA/W to avoid constantly converting string types.
-
Ensure FindFirstFile returns file not found over path not found in MfrFixup. Also ensure SetLastError is set appropriately before returning as some apps look at this rather than the return code.
-
Phase 1 work (conditionally disabled) to add additional folders to the redirect to local redirection in MfrFixup.
Currently only the Documents and Desktop folders do this to allow outside applications to access files outside of the package from their natural location.
We are investigating the possibility of adding additional folders to this list, including Downloads, Pictures, Videos, and Music.
Expect this feature to be enabled in a future release.
v2025.07.02
Fix in MfrFixup for functions to compare if a string containing a filepath is a subset of another filepath. The comparisons were not being made case-insensitive, causing issues.
v2025.07.01
- Add modifications to MfrFixup to support co-existence with FlexibleVirtualization (FileSystemWriteRedirection).
- Update to registry _Marker flag when app is ready to resume from suspension to get PSF injected. Request now include the application identifier.
- Changes to logging to better support debugging of the debug PSF builds when used.
v2025.06.09
Added missing feature from App-V to the PSF: TerminateChildren
This feature is supported in PsfLauncher and PsfFtaCom. The default behavior is the same as having the feature disabled. When enabled, these launchers will terminate all child processes left behind by the launched application. The user is prompted to let them know that they will be killed.
v2025.04.26
- MfrFixup: Removal of logging only intercepts.
- MfrFixup: Fix for performing exact folder matches for possible redirections.
- MfrFixup: Don't replace / with \ in filepaths starting with /dev/
- PsfFtaCom: Ensure that command line arguments for shell integration verb command remain quoted if they were originally quoted; important for file paths with spaces.
- PsfLauncher: Update to documentation.
- General: Updates to debug logging for consistency in formatting.
v.2025.05.11
Updates to PsfLauncher for launching files, MfrFixup for directories, plus logging updates. See https://www.tmurgent.com/TmBlog/?p=4017 for details.
v2025.04.12
- Detours: Changes to enable intercepts of new patterns
- MfrFixup: Changes to ShellExecute, ShellExecuteEx for debugging in release mode
- MfrFixup: Changes to NtCreateFile and NtOpenFile for debugging in release mode
- MfrFixup: ShortName improvements
- MfrFixup/FileRedirectionFixup: Another needed change for case insensitive file matching
- General: Debugging improvements in debug mode
V2025.02.22
Updates, primarily for the MfrFixup and FileRedirectionFixup. Note that with this release we are placing a deprecation notice on the FileRedirectionFixup. See the notes file, or this blog post https://www.tmurgent.com/TmBlog/?p=4001 for details on what changed in this release.