@joebigelow / wix / commits / cc240536

Perform all layout operations in the BA process.

Sean Hall committed Apr 16, 2021 at 13:40 UTC cc240536956e3ef6981599dfff05aa5628e910ac
3 files changed +45 -217
src/engine/apply.cpp
+10 -17
@@ -1076,13 +1076,13 @@ static HRESULT ApplyCacheVerifyContainerOrPayload(
1076 hr = UserExperienceOnCacheContainerOrPayloadVerifyBegin(pContext->pUX, wzPackageOrContainerId, wzPayloadId);
1077 ExitOnRootFailure(hr, "BA aborted cache container or payload verify begin.");
1078
1079 - if (INVALID_HANDLE_VALUE != pContext->hPipe)
1079 + if (pContainer)
1080 {
1081 - hr = ElevationCacheVerifyContainerOrPayload(pContext->hPipe, pContainer, pPackage, pPayloadGroupItem->pPayload, pContext->wzLayoutDirectory);
1081 + hr = CacheVerifyContainer(pContainer, pContext->wzLayoutDirectory);
1082 }
1083 - else if (pContainer)
1083 + else if (!pContext->wzLayoutDirectory && INVALID_HANDLE_VALUE != pContext->hPipe)
1084 {
1085 - hr = CacheVerifyContainer(pContainer, pContext->wzLayoutDirectory);
1085 + hr = ElevationCacheVerifyPayload(pContext->hPipe, pPackage, pPayloadGroupItem->pPayload);
1086 }
1087 else
1088 {
@@ -1289,14 +1289,7 @@ static HRESULT LayoutBundle(
1289 hr = UserExperienceOnCacheVerifyBegin(pContext->pUX, NULL, NULL);
1290 ExitOnRootFailure(hr, "BA aborted cache verify begin.");
1291
1292 - if (INVALID_HANDLE_VALUE != pContext->hPipe)
1293 - {
1294 - hr = ElevationLayoutBundle(pContext->hPipe, pContext->wzLayoutDirectory, wzUnverifiedPath);
1295 - }
1296 - else
1297 - {
1298 - hr = CacheLayoutBundle(wzExecutableName, pContext->wzLayoutDirectory, wzUnverifiedPath);
1299 - }
1292 + hr = CacheLayoutBundle(wzExecutableName, pContext->wzLayoutDirectory, wzUnverifiedPath);
1293
1294 if (SUCCEEDED(hr))
1295 {
@@ -1539,11 +1532,7 @@ static HRESULT LayoutOrCacheContainerOrPayload(
1532 hr = UserExperienceOnCacheVerifyBegin(pContext->pUX, wzPackageOrContainerId, wzPayloadId);
1533 ExitOnRootFailure(hr, "BA aborted cache verify begin.");
1534
1542 - if (INVALID_HANDLE_VALUE != pContext->hPipe) // pass the decision off to the elevated process.
1543 - {
1544 - hr = ElevationCacheOrLayoutContainerOrPayload(pContext->hPipe, pContainer, pPackage, pPayload, pContext->wzLayoutDirectory, wzUnverifiedPath, fMove);
1545 - }
1546 - else if (pContext->wzLayoutDirectory) // layout the container or payload.
1535 + if (pContext->wzLayoutDirectory) // layout the container or payload.
1536 {
1537 if (pContainer)
1538 {
@@ -1554,6 +1543,10 @@ static HRESULT LayoutOrCacheContainerOrPayload(
1543 hr = CacheLayoutPayload(pPayload, pContext->wzLayoutDirectory, wzUnverifiedPath, fMove);
1544 }
1545 }
1546 + else if (INVALID_HANDLE_VALUE != pContext->hPipe) // pass the decision off to the elevated process.
1547 + {
1548 + hr = ElevationCacheCompletePayload(pContext->hPipe, pPackage, pPayload, wzUnverifiedPath, fMove);
1549 + }
1550 else // complete the payload.
1551 {
1552 hr = CacheCompletePayload(pPackage->fPerMachine, pPayload, pPackage->sczCacheId, wzUnverifiedPath, fMove);
src/engine/elevation.cpp
+29 -185
@@ -14,9 +14,8 @@ typedef enum _BURN_ELEVATION_MESSAGE_TYPE
14 BURN_ELEVATION_MESSAGE_TYPE_SESSION_RESUME,
15 BURN_ELEVATION_MESSAGE_TYPE_SESSION_END,
16 BURN_ELEVATION_MESSAGE_TYPE_SAVE_STATE,
17 - BURN_ELEVATION_MESSAGE_TYPE_LAYOUT_BUNDLE,
18 - BURN_ELEVATION_MESSAGE_TYPE_CACHE_OR_LAYOUT_CONTAINER_OR_PAYLOAD,
19 - BURN_ELEVATION_MESSAGE_TYPE_CACHE_VERIFY_CONTAINER_OR_PAYLOAD,
17 + BURN_ELEVATION_MESSAGE_TYPE_CACHE_COMPLETE_PAYLOAD,
18 + BURN_ELEVATION_MESSAGE_TYPE_CACHE_VERIFY_PAYLOAD,
19 BURN_ELEVATION_MESSAGE_TYPE_CACHE_CLEANUP,
20 BURN_ELEVATION_MESSAGE_TYPE_PROCESS_DEPENDENT_REGISTRATION,
21 BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_EXE_PACKAGE,
@@ -165,20 +164,13 @@ static HRESULT OnSaveState(
164 __in BYTE* pbData,
165 __in DWORD cbData
166 );
168 -static HRESULT OnLayoutBundle(
169 - __in_z LPCWSTR wzExecutableName,
170 - __in BYTE* pbData,
171 - __in DWORD cbData
172 - );
173 -static HRESULT OnCacheOrLayoutContainerOrPayload(
174 - __in BURN_CONTAINERS* pContainers,
167 +static HRESULT OnCacheCompletePayload(
168 __in BURN_PACKAGES* pPackages,
169 __in BURN_PAYLOADS* pPayloads,
170 __in BYTE* pbData,
171 __in DWORD cbData
172 );
180 -static HRESULT OnCacheVerifyContainerOrPayload(
181 - __in BURN_CONTAINERS* pContainers,
173 +static HRESULT OnCacheVerifyPayload(
174 __in BURN_PACKAGES* pPackages,
175 __in BURN_PAYLOADS* pPayloads,
176 __in BYTE* pbData,
@@ -582,49 +574,13 @@ LExit:
574 }
575
576 /*******************************************************************
585 - ElevationLayoutBundle -
577 + ElevationCacheCompletePayload -
578
579 *******************************************************************/
588 -extern "C" HRESULT ElevationLayoutBundle(
580 +extern "C" HRESULT ElevationCacheCompletePayload(
581 __in HANDLE hPipe,
590 - __in_z LPCWSTR wzLayoutDirectory,
591 - __in_z LPCWSTR wzUnverifiedPath
592 - )
593 -{
594 - HRESULT hr = S_OK;
595 - BYTE* pbData = NULL;
596 - SIZE_T cbData = 0;
597 - DWORD dwResult = 0;
598 -
599 - // serialize message data
600 - hr = BuffWriteString(&pbData, &cbData, wzLayoutDirectory);
601 - ExitOnFailure(hr, "Failed to write layout directory to message buffer.");
602 -
603 - hr = BuffWriteString(&pbData, &cbData, wzUnverifiedPath);
604 - ExitOnFailure(hr, "Failed to write payload unverified path to message buffer.");
605 -
606 - // send message
607 - hr = PipeSendMessage(hPipe, BURN_ELEVATION_MESSAGE_TYPE_LAYOUT_BUNDLE, pbData, cbData, NULL, NULL, &dwResult);
608 - ExitOnFailure(hr, "Failed to send BURN_ELEVATION_MESSAGE_TYPE_LAYOUT_BUNDLE message to per-machine process.");
609 -
610 - hr = (HRESULT)dwResult;
611 -
612 -LExit:
613 - ReleaseBuffer(pbData);
614 -
615 - return hr;
616 -}
617 -
618 -/*******************************************************************
619 - ElevationCacheOrLayoutPayload -
620 -
621 -*******************************************************************/
622 -extern "C" HRESULT ElevationCacheOrLayoutContainerOrPayload(
623 - __in HANDLE hPipe,
624 - __in_opt BURN_CONTAINER* pContainer,
625 - __in_opt BURN_PACKAGE* pPackage,
626 - __in_opt BURN_PAYLOAD* pPayload,
627 - __in_z_opt LPCWSTR wzLayoutDirectory,
582 + __in BURN_PACKAGE* pPackage,
583 + __in BURN_PAYLOAD* pPayload,
584 __in_z LPCWSTR wzUnverifiedPath,
585 __in BOOL fMove
586 )
@@ -635,18 +591,12 @@ extern "C" HRESULT ElevationCacheOrLayoutContainerOrPayload(
591 DWORD dwResult = 0;
592
593 // serialize message data
638 - hr = BuffWriteString(&pbData, &cbData, pContainer ? pContainer->sczId : NULL);
639 - ExitOnFailure(hr, "Failed to write container id to message buffer.");
640 -
641 - hr = BuffWriteString(&pbData, &cbData, pPackage ? pPackage->sczId : NULL);
594 + hr = BuffWriteString(&pbData, &cbData, pPackage->sczId);
595 ExitOnFailure(hr, "Failed to write package id to message buffer.");
596
644 - hr = BuffWriteString(&pbData, &cbData, pPayload ? pPayload->sczKey : NULL);
597 + hr = BuffWriteString(&pbData, &cbData, pPayload->sczKey);
598 ExitOnFailure(hr, "Failed to write payload id to message buffer.");
599
647 - hr = BuffWriteString(&pbData, &cbData, wzLayoutDirectory);
648 - ExitOnFailure(hr, "Failed to write layout directory to message buffer.");
649 -
600 hr = BuffWriteString(&pbData, &cbData, wzUnverifiedPath);
601 ExitOnFailure(hr, "Failed to write unverified path to message buffer.");
602
@@ -654,8 +604,8 @@ extern "C" HRESULT ElevationCacheOrLayoutContainerOrPayload(
604 ExitOnFailure(hr, "Failed to write move flag to message buffer.");
605
606 // send message
657 - hr = PipeSendMessage(hPipe, BURN_ELEVATION_MESSAGE_TYPE_CACHE_OR_LAYOUT_CONTAINER_OR_PAYLOAD, pbData, cbData, NULL, NULL, &dwResult);
658 - ExitOnFailure(hr, "Failed to send BURN_ELEVATION_MESSAGE_TYPE_CACHE_OR_LAYOUT_CONTAINER_OR_PAYLOAD message to per-machine process.");
607 + hr = PipeSendMessage(hPipe, BURN_ELEVATION_MESSAGE_TYPE_CACHE_COMPLETE_PAYLOAD, pbData, cbData, NULL, NULL, &dwResult);
608 + ExitOnFailure(hr, "Failed to send BURN_ELEVATION_MESSAGE_TYPE_CACHE_COMPLETE_PAYLOAD message to per-machine process.");
609
610 hr = (HRESULT)dwResult;
611
@@ -665,12 +615,10 @@ LExit:
615 return hr;
616 }
617
668 -extern "C" HRESULT ElevationCacheVerifyContainerOrPayload(
618 +extern "C" HRESULT ElevationCacheVerifyPayload(
619 __in HANDLE hPipe,
670 - __in_opt BURN_CONTAINER* pContainer,
671 - __in_opt BURN_PACKAGE* pPackage,
672 - __in_opt BURN_PAYLOAD* pPayload,
673 - __in_z_opt LPCWSTR wzLayoutDirectory
620 + __in BURN_PACKAGE* pPackage,
621 + __in BURN_PAYLOAD* pPayload
622 )
623 {
624 HRESULT hr = S_OK;
@@ -679,21 +627,15 @@ extern "C" HRESULT ElevationCacheVerifyContainerOrPayload(
627 DWORD dwResult = 0;
628
629 // serialize message data
682 - hr = BuffWriteString(&pbData, &cbData, pContainer ? pContainer->sczId : NULL);
683 - ExitOnFailure(hr, "Failed to write container id to message buffer.");
684 -
685 - hr = BuffWriteString(&pbData, &cbData, pPackage ? pPackage->sczId : NULL);
630 + hr = BuffWriteString(&pbData, &cbData, pPackage->sczId);
631 ExitOnFailure(hr, "Failed to write package id to message buffer.");
632
688 - hr = BuffWriteString(&pbData, &cbData, pPayload ? pPayload->sczKey : NULL);
633 + hr = BuffWriteString(&pbData, &cbData, pPayload->sczKey);
634 ExitOnFailure(hr, "Failed to write payload id to message buffer.");
635
691 - hr = BuffWriteString(&pbData, &cbData, wzLayoutDirectory);
692 - ExitOnFailure(hr, "Failed to write layout directory to message buffer.");
693 -
636 // send message
695 - hr = PipeSendMessage(hPipe, BURN_ELEVATION_MESSAGE_TYPE_CACHE_VERIFY_CONTAINER_OR_PAYLOAD, pbData, cbData, NULL, NULL, &dwResult);
696 - ExitOnFailure(hr, "Failed to send BURN_ELEVATION_MESSAGE_TYPE_CACHE_VERIFY_CONTAINER_OR_PAYLOAD message to per-machine process.");
637 + hr = PipeSendMessage(hPipe, BURN_ELEVATION_MESSAGE_TYPE_CACHE_VERIFY_PAYLOAD, pbData, cbData, NULL, NULL, &dwResult);
638 + ExitOnFailure(hr, "Failed to send BURN_ELEVATION_MESSAGE_TYPE_CACHE_VERIFY_PAYLOAD message to per-machine process.");
639
640 hr = (HRESULT)dwResult;
641
@@ -1762,16 +1704,12 @@ static HRESULT ProcessElevatedChildCacheMessage(
1704
1705 switch (pMsg->dwMessage)
1706 {
1765 - case BURN_ELEVATION_MESSAGE_TYPE_LAYOUT_BUNDLE:
1766 - hrResult = OnLayoutBundle(pContext->pRegistration->sczExecutableName, (BYTE*)pMsg->pvData, pMsg->cbData);
1767 - break;
1768 -
1769 - case BURN_ELEVATION_MESSAGE_TYPE_CACHE_OR_LAYOUT_CONTAINER_OR_PAYLOAD:
1770 - hrResult = OnCacheOrLayoutContainerOrPayload(pContext->pContainers, pContext->pPackages, pContext->pPayloads, (BYTE*)pMsg->pvData, pMsg->cbData);
1707 + case BURN_ELEVATION_MESSAGE_TYPE_CACHE_COMPLETE_PAYLOAD:
1708 + hrResult = OnCacheCompletePayload(pContext->pPackages, pContext->pPayloads, (BYTE*)pMsg->pvData, pMsg->cbData);
1709 break;
1710
1773 - case BURN_ELEVATION_MESSAGE_TYPE_CACHE_VERIFY_CONTAINER_OR_PAYLOAD:
1774 - hrResult = OnCacheVerifyContainerOrPayload(pContext->pContainers, pContext->pPackages, pContext->pPayloads, (BYTE*)pMsg->pvData, pMsg->cbData);
1711 + case BURN_ELEVATION_MESSAGE_TYPE_CACHE_VERIFY_PAYLOAD:
1712 + hrResult = OnCacheVerifyPayload(pContext->pPackages, pContext->pPayloads, (BYTE*)pMsg->pvData, pMsg->cbData);
1713 break;
1714
1715 case BURN_ELEVATION_MESSAGE_TYPE_CACHE_CLEANUP:
@@ -2063,37 +2001,7 @@ LExit:
2001 return hr;
2002 }
2003
2066 -static HRESULT OnLayoutBundle(
2067 - __in_z LPCWSTR wzExecutableName,
2068 - __in BYTE* pbData,
2069 - __in DWORD cbData
2070 - )
2071 -{
2072 - HRESULT hr = S_OK;
2073 - SIZE_T iData = 0;
2074 - LPWSTR sczLayoutDirectory = NULL;
2075 - LPWSTR sczUnverifiedPath = NULL;
2076 -
2077 - // Deserialize message data.
2078 - hr = BuffReadString(pbData, cbData, &iData, &sczLayoutDirectory);
2079 - ExitOnFailure(hr, "Failed to read layout directory.");
2080 -
2081 - hr = BuffReadString(pbData, cbData, &iData, &sczUnverifiedPath);
2082 - ExitOnFailure(hr, "Failed to read unverified bundle path.");
2083 -
2084 - // Layout the bundle.
2085 - hr = CacheLayoutBundle(wzExecutableName, sczLayoutDirectory, sczUnverifiedPath);
2086 - ExitOnFailure(hr, "Failed to layout bundle from: %ls", sczUnverifiedPath);
2087 -
2088 -LExit:
2089 - ReleaseStr(sczUnverifiedPath);
2090 - ReleaseStr(sczLayoutDirectory);
2091 -
2092 - return hr;
2093 -}
2094 -
2095 -static HRESULT OnCacheOrLayoutContainerOrPayload(
2096 - __in BURN_CONTAINERS* pContainers,
2004 +static HRESULT OnCacheCompletePayload(
2005 __in BURN_PACKAGES* pPackages,
2006 __in BURN_PAYLOADS* pPayloads,
2007 __in BYTE* pbData,
@@ -2103,23 +2011,12 @@ static HRESULT OnCacheOrLayoutContainerOrPayload(
2011 HRESULT hr = S_OK;
2012 SIZE_T iData = 0;
2013 LPWSTR scz = NULL;
2106 - BURN_CONTAINER* pContainer = NULL;
2014 BURN_PACKAGE* pPackage = NULL;
2015 BURN_PAYLOAD* pPayload = NULL;
2109 - LPWSTR sczLayoutDirectory = NULL;
2016 LPWSTR sczUnverifiedPath = NULL;
2017 BOOL fMove = FALSE;
2018
2019 // Deserialize message data.
2114 - hr = BuffReadString(pbData, cbData, &iData, &scz);
2115 - ExitOnFailure(hr, "Failed to read container id.");
2116 -
2117 - if (scz && *scz)
2118 - {
2119 - hr = ContainerFindById(pContainers, scz, &pContainer);
2120 - ExitOnFailure(hr, "Failed to find container: %ls", scz);
2121 - }
2122 -
2020 hr = BuffReadString(pbData, cbData, &iData, &scz);
2021 ExitOnFailure(hr, "Failed to read package id.");
2022
@@ -2138,55 +2035,31 @@ static HRESULT OnCacheOrLayoutContainerOrPayload(
2035 ExitOnFailure(hr, "Failed to find payload: %ls", scz);
2036 }
2037
2141 - hr = BuffReadString(pbData, cbData, &iData, &sczLayoutDirectory);
2142 - ExitOnFailure(hr, "Failed to read layout directory.");
2143 -
2038 hr = BuffReadString(pbData, cbData, &iData, &sczUnverifiedPath);
2039 ExitOnFailure(hr, "Failed to read unverified path.");
2040
2041 hr = BuffReadNumber(pbData, cbData, &iData, (DWORD*)&fMove);
2042 ExitOnFailure(hr, "Failed to read move flag.");
2043
2150 - // Layout payload.
2151 - if (sczLayoutDirectory && *sczLayoutDirectory)
2044 + if (pPackage && pPayload) // complete payload.
2045 {
2153 - if (pContainer)
2154 - {
2155 - Assert(!pPackage);
2156 - Assert(!pPayload);
2157 -
2158 - hr = CacheLayoutContainer(pContainer, sczLayoutDirectory, sczUnverifiedPath, fMove);
2159 - ExitOnFailure(hr, "Failed to layout container from: %ls to %ls", sczUnverifiedPath, sczLayoutDirectory);
2160 - }
2161 - else
2162 - {
2163 - hr = CacheLayoutPayload(pPayload, sczLayoutDirectory, sczUnverifiedPath, fMove);
2164 - ExitOnFailure(hr, "Failed to layout payload from: %ls to %ls", sczUnverifiedPath, sczLayoutDirectory);
2165 - }
2166 - }
2167 - else if (pPackage) // complete payload.
2168 - {
2169 - Assert(!pContainer);
2170 -
2046 hr = CacheCompletePayload(pPackage->fPerMachine, pPayload, pPackage->sczCacheId, sczUnverifiedPath, fMove);
2047 ExitOnFailure(hr, "Failed to cache payload: %ls", pPayload->sczKey);
2048 }
2049 else
2050 {
2051 hr = E_INVALIDARG;
2177 - ExitOnRootFailure(hr, "Invalid data passed to cache or layout payload.");
2052 + ExitOnRootFailure(hr, "Invalid data passed to cache complete payload.");
2053 }
2054
2055 LExit:
2056 ReleaseStr(sczUnverifiedPath);
2182 - ReleaseStr(sczLayoutDirectory);
2057 ReleaseStr(scz);
2058
2059 return hr;
2060 }
2061
2188 -static HRESULT OnCacheVerifyContainerOrPayload(
2189 - __in BURN_CONTAINERS* pContainers,
2062 +static HRESULT OnCacheVerifyPayload(
2063 __in BURN_PACKAGES* pPackages,
2064 __in BURN_PAYLOADS* pPayloads,
2065 __in BYTE* pbData,
@@ -2196,21 +2069,11 @@ static HRESULT OnCacheVerifyContainerOrPayload(
2069 HRESULT hr = S_OK;
2070 SIZE_T iData = 0;
2071 LPWSTR scz = NULL;
2199 - BURN_CONTAINER* pContainer = NULL;
2072 BURN_PACKAGE* pPackage = NULL;
2073 BURN_PAYLOAD* pPayload = NULL;
2074 LPWSTR sczCacheDirectory = NULL;
2075
2076 // Deserialize message data.
2205 - hr = BuffReadString(pbData, cbData, &iData, &scz);
2206 - ExitOnFailure(hr, "Failed to read container id.");
2207 -
2208 - if (scz && *scz)
2209 - {
2210 - hr = ContainerFindById(pContainers, scz, &pContainer);
2211 - ExitOnFailure(hr, "Failed to find container: %ls", scz);
2212 - }
2213 -
2077 hr = BuffReadString(pbData, cbData, &iData, &scz);
2078 ExitOnFailure(hr, "Failed to read package id.");
2079
@@ -2229,36 +2092,17 @@ static HRESULT OnCacheVerifyContainerOrPayload(
2092 ExitOnFailure(hr, "Failed to find payload: %ls", scz);
2093 }
2094
2232 - hr = BuffReadString(pbData, cbData, &iData, &sczCacheDirectory);
2233 - ExitOnFailure(hr, "Failed to read layout directory.");
2234 -
2235 - if (!sczCacheDirectory || !*sczCacheDirectory)
2095 + if (pPackage && pPayload)
2096 {
2237 - if (!pPackage)
2238 - {
2239 - hr = E_INVALIDARG;
2240 - ExitOnRootFailure(hr, "Invalid data passed to cache verify payload.");
2241 - }
2242 -
2097 hr = CacheGetCompletedPath(TRUE, pPackage->sczCacheId, &sczCacheDirectory);
2098 ExitOnFailure(hr, "Failed to get cached path for package with cache id: %ls", pPackage->sczCacheId);
2245 - }
2246 -
2247 - if (pContainer)
2248 - {
2249 - Assert(!pPackage);
2250 - Assert(!pPayload);
2099
2252 - hr = CacheVerifyContainer(pContainer, sczCacheDirectory);
2253 - }
2254 - else if (pPayload)
2255 - {
2100 hr = CacheVerifyPayload(pPayload, sczCacheDirectory);
2101 }
2102 else
2103 {
2104 hr = E_INVALIDARG;
2261 - ExitOnRootFailure(hr, "Invalid data passed to cache or layout payload.");
2105 + ExitOnRootFailure(hr, "Invalid data passed to cache verify payload.");
2106 }
2107 // Nothing should be logged on failure.
2108
src/engine/elevation.h
+6 -15
@@ -50,26 +50,17 @@ HRESULT ElevationSaveState(
50 __in_bcount(cbBuffer) BYTE* pbBuffer,
51 __in SIZE_T cbBuffer
52 );
53 -HRESULT ElevationLayoutBundle(
53 +HRESULT ElevationCacheCompletePayload(
54 __in HANDLE hPipe,
55 - __in_z LPCWSTR wzLayoutDirectory,
56 - __in_z LPCWSTR wzUnverifiedPath
57 - );
58 -HRESULT ElevationCacheOrLayoutContainerOrPayload(
59 - __in HANDLE hPipe,
60 - __in_opt BURN_CONTAINER* pContainer,
61 - __in_opt BURN_PACKAGE* pPackage,
62 - __in_opt BURN_PAYLOAD* pPayload,
63 - __in_z_opt LPCWSTR wzLayoutDirectory,
55 + __in BURN_PACKAGE* pPackage,
56 + __in BURN_PAYLOAD* pPayload,
57 __in_z LPCWSTR wzUnverifiedPath,
58 __in BOOL fMove
59 );
67 -HRESULT ElevationCacheVerifyContainerOrPayload(
60 +HRESULT ElevationCacheVerifyPayload(
61 __in HANDLE hPipe,
69 - __in_opt BURN_CONTAINER* pContainer,
70 - __in_opt BURN_PACKAGE* pPackage,
71 - __in_opt BURN_PAYLOAD* pPayload,
72 - __in_z_opt LPCWSTR wzLayoutDirectory
62 + __in BURN_PACKAGE* pPackage,
63 + __in BURN_PAYLOAD* pPayload
64 );
65 HRESULT ElevationCacheCleanup(
66 __in HANDLE hPipe