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