From cc240536956e3ef6981599dfff05aa5628e910ac Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Fri, 16 Apr 2021 13:40:25 -0500 Subject: Perform all layout operations in the BA process. --- src/engine/apply.cpp | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) (limited to 'src/engine/apply.cpp') diff --git a/src/engine/apply.cpp b/src/engine/apply.cpp index ab7fa077..cf904405 100644 --- a/src/engine/apply.cpp +++ b/src/engine/apply.cpp @@ -1076,13 +1076,13 @@ static HRESULT ApplyCacheVerifyContainerOrPayload( hr = UserExperienceOnCacheContainerOrPayloadVerifyBegin(pContext->pUX, wzPackageOrContainerId, wzPayloadId); ExitOnRootFailure(hr, "BA aborted cache container or payload verify begin."); - if (INVALID_HANDLE_VALUE != pContext->hPipe) + if (pContainer) { - hr = ElevationCacheVerifyContainerOrPayload(pContext->hPipe, pContainer, pPackage, pPayloadGroupItem->pPayload, pContext->wzLayoutDirectory); + hr = CacheVerifyContainer(pContainer, pContext->wzLayoutDirectory); } - else if (pContainer) + else if (!pContext->wzLayoutDirectory && INVALID_HANDLE_VALUE != pContext->hPipe) { - hr = CacheVerifyContainer(pContainer, pContext->wzLayoutDirectory); + hr = ElevationCacheVerifyPayload(pContext->hPipe, pPackage, pPayloadGroupItem->pPayload); } else { @@ -1289,14 +1289,7 @@ static HRESULT LayoutBundle( hr = UserExperienceOnCacheVerifyBegin(pContext->pUX, NULL, NULL); ExitOnRootFailure(hr, "BA aborted cache verify begin."); - if (INVALID_HANDLE_VALUE != pContext->hPipe) - { - hr = ElevationLayoutBundle(pContext->hPipe, pContext->wzLayoutDirectory, wzUnverifiedPath); - } - else - { - hr = CacheLayoutBundle(wzExecutableName, pContext->wzLayoutDirectory, wzUnverifiedPath); - } + hr = CacheLayoutBundle(wzExecutableName, pContext->wzLayoutDirectory, wzUnverifiedPath); if (SUCCEEDED(hr)) { @@ -1539,11 +1532,7 @@ static HRESULT LayoutOrCacheContainerOrPayload( hr = UserExperienceOnCacheVerifyBegin(pContext->pUX, wzPackageOrContainerId, wzPayloadId); ExitOnRootFailure(hr, "BA aborted cache verify begin."); - if (INVALID_HANDLE_VALUE != pContext->hPipe) // pass the decision off to the elevated process. - { - hr = ElevationCacheOrLayoutContainerOrPayload(pContext->hPipe, pContainer, pPackage, pPayload, pContext->wzLayoutDirectory, wzUnverifiedPath, fMove); - } - else if (pContext->wzLayoutDirectory) // layout the container or payload. + if (pContext->wzLayoutDirectory) // layout the container or payload. { if (pContainer) { @@ -1554,6 +1543,10 @@ static HRESULT LayoutOrCacheContainerOrPayload( hr = CacheLayoutPayload(pPayload, pContext->wzLayoutDirectory, wzUnverifiedPath, fMove); } } + else if (INVALID_HANDLE_VALUE != pContext->hPipe) // pass the decision off to the elevated process. + { + hr = ElevationCacheCompletePayload(pContext->hPipe, pPackage, pPayload, wzUnverifiedPath, fMove); + } else // complete the payload. { hr = CacheCompletePayload(pPackage->fPerMachine, pPayload, pPackage->sczCacheId, wzUnverifiedPath, fMove); -- cgit v1.2.3-55-g6feb