aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2021-08-23 19:05:48 -0400
committerBob Arnson <bob@firegiant.com>2021-08-23 19:34:57 -0400
commita4dc574fa13d828614058906c4e99fcb45965fe5 (patch)
tree705a00f750c861420ab6bd5c2a12a023e1e9e483 /src
parent19c52f14644ac666c12f1a44bc2c0cce1586b8c5 (diff)
downloadwix-a4dc574fa13d828614058906c4e99fcb45965fe5.tar.gz
wix-a4dc574fa13d828614058906c4e99fcb45965fe5.tar.bz2
wix-a4dc574fa13d828614058906c4e99fcb45965fe5.zip
Skip Wow64 redirection on 64-bit CA builds.
Diffstat (limited to 'src')
-rw-r--r--src/ext/Util/ca/RemoveFoldersEx.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/ext/Util/ca/RemoveFoldersEx.cpp b/src/ext/Util/ca/RemoveFoldersEx.cpp
index cbc7f4bb..fc8574bc 100644
--- a/src/ext/Util/ca/RemoveFoldersEx.cpp
+++ b/src/ext/Util/ca/RemoveFoldersEx.cpp
@@ -28,11 +28,15 @@ static HRESULT RecursePath(
28 WIN32_FIND_DATAW wfd; 28 WIN32_FIND_DATAW wfd;
29 LPWSTR sczNext = NULL; 29 LPWSTR sczNext = NULL;
30 30
31#ifdef _WIN64
32 UNREFERENCED_PARAMETER(fDisableWow64Redirection);
33#else
31 if (fDisableWow64Redirection) 34 if (fDisableWow64Redirection)
32 { 35 {
33 hr = WcaDisableWow64FSRedirection(); 36 hr = WcaDisableWow64FSRedirection();
34 ExitOnFailure(hr, "Custom action was told to act on a 64-bit component, but was unable to disable filesystem redirection through the Wow64 API."); 37 ExitOnFailure(hr, "Custom action was told to act on a 64-bit component, but was unable to disable filesystem redirection through the Wow64 API.");
35 } 38 }
39#endif
36 40
37 // First recurse down to all the child directories. 41 // First recurse down to all the child directories.
38 hr = StrAllocFormatted(&sczSearch, L"%s*", wzPath); 42 hr = StrAllocFormatted(&sczSearch, L"%s*", wzPath);
@@ -103,10 +107,12 @@ LExit:
103 ::FindClose(hFind); 107 ::FindClose(hFind);
104 } 108 }
105 109
110#ifndef _WIN64
106 if (fDisableWow64Redirection) 111 if (fDisableWow64Redirection)
107 { 112 {
108 WcaRevertWow64FSRedirection(); 113 WcaRevertWow64FSRedirection();
109 } 114 }
115#endif
110 116
111 ReleaseStr(sczNext); 117 ReleaseStr(sczNext);
112 ReleaseStr(sczProperty); 118 ReleaseStr(sczProperty);
@@ -140,7 +146,9 @@ extern "C" UINT WINAPI WixRemoveFoldersEx(
140 hr = WcaInitialize(hInstall, "WixRemoveFoldersEx"); 146 hr = WcaInitialize(hInstall, "WixRemoveFoldersEx");
141 ExitOnFailure(hr, "Failed to initialize WixRemoveFoldersEx."); 147 ExitOnFailure(hr, "Failed to initialize WixRemoveFoldersEx.");
142 148
149#ifndef _WIN64
143 WcaInitializeWow64(); 150 WcaInitializeWow64();
151#endif
144 152
145 // anything to do? 153 // anything to do?
146 if (S_OK != WcaTableExists(L"Wix4RemoveFolderEx")) 154 if (S_OK != WcaTableExists(L"Wix4RemoveFolderEx"))
@@ -219,7 +227,9 @@ extern "C" UINT WINAPI WixRemoveFoldersEx(
219 ExitOnFailure(hr, "Failure occured while processing Wix4RemoveFolderEx table"); 227 ExitOnFailure(hr, "Failure occured while processing Wix4RemoveFolderEx table");
220 228
221LExit: 229LExit:
230#ifndef _WIN64
222 WcaFinalizeWow64(); 231 WcaFinalizeWow64();
232#endif
223 233
224 if (hColumns) 234 if (hColumns)
225 { 235 {