{"id":3363,"date":"2022-01-25T10:06:47","date_gmt":"2022-01-25T15:06:47","guid":{"rendered":"https:\/\/www.tmurgent.com\/TmBlog\/?p=3363"},"modified":"2022-01-25T10:06:47","modified_gmt":"2022-01-25T15:06:47","slug":"new-in-the-psf-v2022-01-19","status":"publish","type":"post","link":"https:\/\/www.tmurgent.com\/TmBlog\/?p=3363","title":{"rendered":"New in the PSF v2022.01.19"},"content":{"rendered":"\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-3368\" src=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2022\/01\/PsfLogo-300x180.png\" alt=\"Psf Logo\" width=\"300\" height=\"180\" srcset=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2022\/01\/PsfLogo-300x180.png 300w, https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2022\/01\/PsfLogo.png 500w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>The\u00a0<em>Package Support Framework (PSF)<\/em> was started by Microsoft as an Open Source Project to help Win32 and .Net Framework based software operate in the new MSIX Container runtime, however the latest changes are now made in my own fork at <a href=\"https:\/\/github.com\/TimMangan\/MSIX-PackageSupportFramework\/tree\/develop\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/TimMangan\/MSIX-PackageSupportFramework\/tree\/develop<\/a> .<\/p>\n<p>The &#8220;v.2022.01.19&#8221; release completes the updates began last fall to clear up a slew of issues.\u00a0 It modernizes the PSF, so that it no longer uses deprecated versions of the Windows SDK, covers additional edge cases for both app launching and file accesses, as well as addressing new issues that cropped up in the December release (such as RegLegacyFixup).\u00a0 With these changes, the PSF is now again better capable of improving application compatibility.\u00a0 You will see this effect in the new Report Card on MSIX when released next month.<\/p>\n<p>The individual changes are too numerous to list, but here are the highlights of what changed since the November release:<\/p>\n<p>\u00a0<\/p>\n<p><strong><span style=\"background-color: #0000ff;\">App Launching<\/span>. <\/strong>Additional types of exe files are now supported by the PSF.\u00a0 This is by no means a complete fix for all types of exes, but is better than it was.\u00a0 More importantly, if the PSF fails in injecting itself into a process, it should no longer kill that process but just let it run without the PSF.<\/p>\n<p><strong><span style=\"background-color: #0000ff;\">Child and Special Processes<\/span><\/strong>. The way that some applications start processes, especially child processes and the use of client file types (such as to open a text file or pdf) to spawn a process, powershell, and cmd scripting had issues with these processes jumping outside of the container.\u00a0 The PSF should now contain most of these.\u00a0 The exceptions are conhost and powershell, although the new powershell scripting solution will launch a powershell outside the container to inject the real powershell script back in.<\/p>\n<p><strong><span style=\"background-color: #0000ff;\">File Accesses<\/span><\/strong>. I found a number of applications that required reverse virtualization searching when querying for files (Find*File calls).\u00a0 The rewrite of these functions is now complete and includes a potential 5-layer model to cover all known cases. The generic file redirection also now includes support for this kind of reverse lookup when opening files.\u00a0<\/p>\n<p><strong><span style=\"background-color: #0000ff;\">Products using PSF\/Breaking Changes<\/span><\/strong>:\u00a0\u00a0For those vendors that use the PSF components to build packages, there are some &#8220;breaking changes&#8221; that you will need to be aware of.\u00a0 For example, the RegLegacyFixup now has some dependency dlls from Microsoft redistribution that may need to be added to packages using this Fixup.\u00a0 Additionally, the December release added new PS1 files that might be needed in some packages.\u00a0 And packages with both 32 and 64 bit exe files (or any package with AnyCPU exe files) will once again need PsfRun32.exe and PsfRun64.exe along with both bitnesses of the dll files of any fixups you include in the package.<\/p>\n<p><strong><span style=\"background-color: #0000ff;\">What&#8217;s Next?<\/span><\/strong>: It is anticipated that February will be the next release for the PSF, as there were additional changes that have been identified in the testing and are being worked. Some of these go to the heart of how Detours is implemented. These changes will open the door for the PSF to be able to address more application issues. You can track the progress on these changes in the 2022FebUpdate branch.<\/p>\n<p>The v2022.01.19 changes will be reflected in releases of TMEditX (2.0.0.0 ) and PsfTooling (5.0.0) in the near future.\u00a0 Other vendors including the PSF in their products may implement these changes at their own pace.<\/p>\n\n\n","protected":false},"excerpt":{"rendered":"<p>The\u00a0Package Support Framework (PSF) was started by Microsoft as an Open Source Project to help Win32 and .Net Framework based software operate in the new MSIX Container runtime, however the latest changes are now made in my own fork at https:\/\/github.com\/TimMangan\/MSIX-PackageSupportFramework\/tree\/develop . The &#8220;v.2022.01.19&#8221; release completes the updates began last fall to clear up a&hellip; <a class=\"more-link\" href=\"https:\/\/www.tmurgent.com\/TmBlog\/?p=3363\">Continue reading <span class=\"screen-reader-text\">New in the PSF v2022.01.19<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[53,56],"tags":[52,54],"class_list":["post-3363","post","type-post","status-publish","format-standard","hentry","category-msix","category-psf","tag-msix","tag-psf","entry"],"_links":{"self":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/3363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3363"}],"version-history":[{"count":5,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/3363\/revisions"}],"predecessor-version":[{"id":3369,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/3363\/revisions\/3369"}],"wp:attachment":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}