{"id":3466,"date":"2022-07-11T12:21:21","date_gmt":"2022-07-11T16:21:21","guid":{"rendered":"https:\/\/www.tmurgent.com\/TmBlog\/?p=3466"},"modified":"2022-08-09T09:46:27","modified_gmt":"2022-08-09T13:46:27","slug":"psf-2022-07-10-release-notes","status":"publish","type":"post","link":"https:\/\/www.tmurgent.com\/TmBlog\/?p=3466","title":{"rendered":"PSF 2022.07.10 Release Notes"},"content":{"rendered":"\n<p><em><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-3368\" src=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2022\/01\/PsfLogo-150x150.png\" alt=\"Psf Logo\" width=\"150\" height=\"150\" \/> The Package Support Framework (PSF) was originally an open-source project to help Win32\/DotNet applications run when inside an MSIX Container.\u00a0 TMurgent has taken up the support for the PSF in our own fork\u00a0<a href=\"https:\/\/github.com\/TimMangan\/MSIX-PackageSupportFramework\" target=\"_blank\" rel=\"noopener\">here on GitHub<\/a>. <\/em><\/p>\n<p>The change list shown below covers changes made in v.2022.07.10 since the June 2022 release:<\/p>\n<ul>\n<li><strong>DynamicLibraryFixup<\/strong> fix to allow for mixed cases in call by app. Sometimes the apps ask for the dll by name and not use the same case as the actual file.<\/li>\n<li><strong>FileRedirectionFixup f<\/strong>ix for CreateFile when request is to the redirected area directly and file either exists already there or the request was to CREATE_ALWAYS.<\/li>\n<li><strong>FileRedirectionFixup\u00a0<\/strong>fix for CreateFile\/Ex. When these functions return, the primary reply is either a file handle or an invalid handle with the error available via GetLastError().\u00a0 Most apps look for a valid handle and then ignore the error.\u00a0 Because these functions make multiple calls, we didn&#8217;t always reset the error code to ERROR_SUCCESS when we end up returning the handle from the non-last call.\u00a0 This is now fixed.<\/li>\n<li>\u00a0<strong>FileRedirectionFixup f<\/strong>ix in DeleteDirectory to allow deletion of redirected directory (even though the package folder will still be present).<\/li>\n<li><strong>FileRedirectionFixup<\/strong> change.\u00a0Added a new intercept for ReadDirectoryChangesW and ReadDirectoryChangesExW that only log the calls. In this call, the app uses an already open handle.\u00a0 In apps where we see this being called, that handle was to the redirected folder, which is the logical place to be watching for changes. But I suspect that there will be a situation where the wrong handle gets used. That the function is being used is logged to the console port (DebugView) in the release build. You can use the Debug build for extended logging which will reveal the path to the directory. Until we find an app that requires modification, this is the best thing to do.<\/li>\n<li><strong>FileRedirectionFixup <\/strong>non-impact change. \u00a0Intercepts were coded but not enabled for many ucrtbase.dll (POSIX) file system calls.\u00a0 \u00a0So far, we have seen that these APIs call the APIs we already intercept, so intercepting these functions is not currently required.\u00a0 \u00a0I don&#8217;t have a high level of confidence that there aren&#8217;t some additional POSIX calls that might need remediation someday, so this serves as a warning to pay attention to POSIX calls in failed apps.<\/li>\n<\/ul>\n<p>The release can be <a href=\"https:\/\/github.com\/TimMangan\/MSIX-PackageSupportFramework\/releases\/tag\/v2022.07.10\" target=\"_blank\" rel=\"noopener\">found on GitHub<\/a> and will be included in the following releases of my tools:<\/p>\n<ul>\n<li><strong>PsfTooling<\/strong>\u00a0 \u00a05.4 or later.<\/li>\n<li><strong>TMEditX\u00a0<\/strong>\u00a0 \u00a0 \u00a02.4 or later.<\/li>\n<\/ul>\n\n\n","protected":false},"excerpt":{"rendered":"<p>The Package Support Framework (PSF) was originally an open-source project to help Win32\/DotNet applications run when inside an MSIX Container.\u00a0 TMurgent has taken up the support for the PSF in our own fork\u00a0here on GitHub. The change list shown below covers changes made in v.2022.07.10 since the June 2022 release: DynamicLibraryFixup fix to allow for&hellip; <a class=\"more-link\" href=\"https:\/\/www.tmurgent.com\/TmBlog\/?p=3466\">Continue reading <span class=\"screen-reader-text\">PSF 2022.07.10 Release Notes<\/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":[56],"tags":[54],"class_list":["post-3466","post","type-post","status-publish","format-standard","hentry","category-psf","tag-psf","entry"],"_links":{"self":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/3466","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=3466"}],"version-history":[{"count":1,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/3466\/revisions"}],"predecessor-version":[{"id":3467,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/3466\/revisions\/3467"}],"wp:attachment":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3466"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3466"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3466"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}