From 0d3d54992104288e9ee0c834d0b96e8502fd2d42 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 11 Jan 2024 18:26:20 -0800 Subject: Move the BootstrapperApplication out of proc --- src/burn/engine/EngineForApplication.cpp | 548 ------------------------------- 1 file changed, 548 deletions(-) delete mode 100644 src/burn/engine/EngineForApplication.cpp (limited to 'src/burn/engine/EngineForApplication.cpp') diff --git a/src/burn/engine/EngineForApplication.cpp b/src/burn/engine/EngineForApplication.cpp deleted file mode 100644 index eb77cc50..00000000 --- a/src/burn/engine/EngineForApplication.cpp +++ /dev/null @@ -1,548 +0,0 @@ -// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. - -#include "precomp.h" - - -static HRESULT BAEngineGetPackageCount( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_GETPACKAGECOUNT_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_GETPACKAGECOUNT_RESULTS, pResults); - - ExternalEngineGetPackageCount(pContext->pEngineState, &pResults->cPackages); - -LExit: - return hr; -} - -static HRESULT BAEngineGetVariableNumeric( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_GETVARIABLENUMERIC_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_GETVARIABLENUMERIC_RESULTS, pResults); - - hr = ExternalEngineGetVariableNumeric(pContext->pEngineState, pArgs->wzVariable, &pResults->llValue); - -LExit: - return hr; -} - -static HRESULT BAEngineGetVariableString( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_GETVARIABLESTRING_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_GETVARIABLESTRING_RESULTS, pResults); - - hr = ExternalEngineGetVariableString(pContext->pEngineState, pArgs->wzVariable, pResults->wzValue, &pResults->cchValue); - -LExit: - return hr; -} - -static HRESULT BAEngineGetVariableVersion( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_GETVARIABLEVERSION_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_GETVARIABLEVERSION_RESULTS, pResults); - - hr = ExternalEngineGetVariableVersion(pContext->pEngineState, pArgs->wzVariable, pResults->wzValue, &pResults->cchValue); - -LExit: - return hr; -} - -static HRESULT BAEngineFormatString( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_FORMATSTRING_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_FORMATSTRING_RESULTS, pResults); - - hr = ExternalEngineFormatString(pContext->pEngineState, pArgs->wzIn, pResults->wzOut, &pResults->cchOut); - -LExit: - return hr; -} - -static HRESULT BAEngineEscapeString( - __in BOOTSTRAPPER_ENGINE_CONTEXT* /*pContext*/, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_ESCAPESTRING_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_ESCAPESTRING_RESULTS, pResults); - - hr = ExternalEngineEscapeString(pArgs->wzIn, pResults->wzOut, &pResults->cchOut); - -LExit: - return hr; -} - -static HRESULT BAEngineEvaluateCondition( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_EVALUATECONDITION_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_EVALUATECONDITION_RESULTS, pResults); - - hr = ExternalEngineEvaluateCondition(pContext->pEngineState, pArgs->wzCondition, &pResults->f); - -LExit: - return hr; -} - -static HRESULT BAEngineLog( - __in BOOTSTRAPPER_ENGINE_CONTEXT* /*pContext*/, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - REPORT_LEVEL rl = REPORT_NONE; - ValidateMessageArgs(hr, pvArgs, BAENGINE_LOG_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_LOG_RESULTS, pResults); - - switch (pArgs->level) - { - case BOOTSTRAPPER_LOG_LEVEL_STANDARD: - rl = REPORT_STANDARD; - break; - - case BOOTSTRAPPER_LOG_LEVEL_VERBOSE: - rl = REPORT_VERBOSE; - break; - - case BOOTSTRAPPER_LOG_LEVEL_DEBUG: - rl = REPORT_DEBUG; - break; - - case BOOTSTRAPPER_LOG_LEVEL_ERROR: - rl = REPORT_ERROR; - break; - - default: - ExitFunction1(hr = E_INVALIDARG); - } - - hr = ExternalEngineLog(rl, pArgs->wzMessage); - ExitOnFailure(hr, "Failed to log BA message."); - -LExit: - return hr; -} - -static HRESULT BAEngineSendEmbeddedError( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_SENDEMBEDDEDERROR_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_SENDEMBEDDEDERROR_RESULTS, pResults); - - hr = ExternalEngineSendEmbeddedError(pContext->pEngineState, pArgs->dwErrorCode, pArgs->wzMessage, pArgs->dwUIHint, &pResults->nResult); - -LExit: - return hr; -} - -static HRESULT BAEngineSendEmbeddedProgress( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_SENDEMBEDDEDPROGRESS_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_SENDEMBEDDEDPROGRESS_RESULTS, pResults); - - hr = ExternalEngineSendEmbeddedProgress(pContext->pEngineState, pArgs->dwProgressPercentage, pArgs->dwOverallProgressPercentage, &pResults->nResult); - -LExit: - return hr; -} - -static HRESULT BAEngineSetUpdate( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_SETUPDATE_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_SETUPDATE_RESULTS, pResults); - - hr = ExternalEngineSetUpdate(pContext->pEngineState, pArgs->wzLocalSource, pArgs->wzDownloadSource, pArgs->qwSize, pArgs->hashType, pArgs->wzHash); - -LExit: - return hr; -} - -static HRESULT BAEngineSetLocalSource( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_SETLOCALSOURCE_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_SETLOCALSOURCE_RESULTS, pResults); - - hr = ExternalEngineSetLocalSource(pContext->pEngineState, pArgs->wzPackageOrContainerId, pArgs->wzPayloadId, pArgs->wzPath); - -LExit: - return hr; -} - -static HRESULT BAEngineSetDownloadSource( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_SETDOWNLOADSOURCE_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_SETDOWNLOADSOURCE_RESULTS, pResults); - - hr = ExternalEngineSetDownloadSource(pContext->pEngineState, pArgs->wzPackageOrContainerId, pArgs->wzPayloadId, pArgs->wzUrl, pArgs->wzUser, pArgs->wzPassword); - -LExit: - return hr; -} - -static HRESULT BAEngineSetVariableNumeric( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_SETVARIABLENUMERIC_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_SETVARIABLENUMERIC_RESULTS, pResults); - - hr = ExternalEngineSetVariableNumeric(pContext->pEngineState, pArgs->wzVariable, pArgs->llValue); - -LExit: - return hr; -} - -static HRESULT BAEngineSetVariableString( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_SETVARIABLESTRING_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_SETVARIABLESTRING_RESULTS, pResults); - - hr = ExternalEngineSetVariableString(pContext->pEngineState, pArgs->wzVariable, pArgs->wzValue, pArgs->fFormatted); - -LExit: - return hr; -} - -static HRESULT BAEngineSetVariableVersion( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_SETVARIABLEVERSION_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_SETVARIABLEVERSION_RESULTS, pResults); - - hr = ExternalEngineSetVariableVersion(pContext->pEngineState, pArgs->wzVariable, pArgs->wzValue); - -LExit: - return hr; -} - -static HRESULT BAEngineCloseSplashScreen( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_CLOSESPLASHSCREEN_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_CLOSESPLASHSCREEN_RESULTS, pResults); - - ExternalEngineCloseSplashScreen(pContext->pEngineState); - -LExit: - return hr; -} - -static HRESULT BAEngineCompareVersions( - __in BOOTSTRAPPER_ENGINE_CONTEXT* /*pContext*/, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_COMPAREVERSIONS_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_COMPAREVERSIONS_RESULTS, pResults); - - hr = ExternalEngineCompareVersions(pArgs->wzVersion1, pArgs->wzVersion2, &pResults->nResult); - -LExit: - return hr; -} - -static HRESULT BAEngineDetect( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_DETECT_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_DETECT_RESULTS, pResults); - - hr = ExternalEngineDetect(pContext, pArgs->hwndParent); - -LExit: - return hr; -} - -static HRESULT BAEnginePlan( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_PLAN_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_PLAN_RESULTS, pResults); - - hr = ExternalEnginePlan(pContext, pArgs->action); - -LExit: - return hr; -} - -static HRESULT BAEngineElevate( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_ELEVATE_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_ELEVATE_RESULTS, pResults); - - hr = ExternalEngineElevate(pContext, pArgs->hwndParent); - -LExit: - return hr; -} - -static HRESULT BAEngineApply( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_APPLY_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_APPLY_RESULTS, pResults); - - hr = ExternalEngineApply(pContext, pArgs->hwndParent); - -LExit: - return hr; -} - -static HRESULT BAEngineQuit( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_QUIT_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_QUIT_RESULTS, pResults); - - hr = ExternalEngineQuit(pContext, pArgs->dwExitCode); - -LExit: - return hr; -} - -static HRESULT BAEngineLaunchApprovedExe( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_LAUNCHAPPROVEDEXE_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_LAUNCHAPPROVEDEXE_RESULTS, pResults); - - hr = ExternalEngineLaunchApprovedExe(pContext, pArgs->hwndParent, pArgs->wzApprovedExeForElevationId, pArgs->wzArguments, pArgs->dwWaitForInputIdleTimeout); - -LExit: - return hr; -} - -static HRESULT BAEngineSetUpdateSource( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_SETUPDATESOURCE_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_SETUPDATESOURCE_RESULTS, pResults); - - hr = ExternalEngineSetUpdateSource(pContext->pEngineState, pArgs->wzUrl); - -LExit: - return hr; -} - -static HRESULT BAEngineGetRelatedBundleVariable( - __in BOOTSTRAPPER_ENGINE_CONTEXT* pContext, - __in const LPVOID pvArgs, - __inout LPVOID pvResults - ) -{ - HRESULT hr = S_OK; - ValidateMessageArgs(hr, pvArgs, BAENGINE_GETRELATEDBUNDLEVARIABLE_ARGS, pArgs); - ValidateMessageResults(hr, pvResults, BAENGINE_GETRELATEDBUNDLEVARIABLE_RESULTS, pResults); - - hr = ExternalEngineGetRelatedBundleVariable(pContext->pEngineState, pArgs->wzBundleId, pArgs->wzVariable, pResults->wzValue, &pResults->cchValue); - -LExit: - return hr; -} - -HRESULT WINAPI EngineForApplicationProc( - __in BOOTSTRAPPER_ENGINE_MESSAGE message, - __in const LPVOID pvArgs, - __inout LPVOID pvResults, - __in_opt LPVOID pvContext - ) -{ - HRESULT hr = S_OK; - BOOTSTRAPPER_ENGINE_CONTEXT* pContext = reinterpret_cast(pvContext); - - if (!pContext || !pvArgs || !pvResults) - { - ExitFunction1(hr = E_INVALIDARG); - } - - switch (message) - { - case BOOTSTRAPPER_ENGINE_MESSAGE_GETPACKAGECOUNT: - hr = BAEngineGetPackageCount(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_GETVARIABLENUMERIC: - hr = BAEngineGetVariableNumeric(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_GETVARIABLESTRING: - hr = BAEngineGetVariableString(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_GETVARIABLEVERSION: - hr = BAEngineGetVariableVersion(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_FORMATSTRING: - hr = BAEngineFormatString(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_ESCAPESTRING: - hr = BAEngineEscapeString(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_EVALUATECONDITION: - hr = BAEngineEvaluateCondition(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_LOG: - hr = BAEngineLog(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_SENDEMBEDDEDERROR: - hr = BAEngineSendEmbeddedError(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_SENDEMBEDDEDPROGRESS: - hr = BAEngineSendEmbeddedProgress(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_SETUPDATE: - hr = BAEngineSetUpdate(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_SETLOCALSOURCE: - hr = BAEngineSetLocalSource(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_SETDOWNLOADSOURCE: - hr = BAEngineSetDownloadSource(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_SETVARIABLENUMERIC: - hr = BAEngineSetVariableNumeric(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_SETVARIABLESTRING: - hr = BAEngineSetVariableString(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_SETVARIABLEVERSION: - hr = BAEngineSetVariableVersion(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_CLOSESPLASHSCREEN: - hr = BAEngineCloseSplashScreen(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_DETECT: - hr = BAEngineDetect(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_PLAN: - hr = BAEnginePlan(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_ELEVATE: - hr = BAEngineElevate(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_APPLY: - hr = BAEngineApply(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_QUIT: - hr = BAEngineQuit(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_LAUNCHAPPROVEDEXE: - hr = BAEngineLaunchApprovedExe(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_SETUPDATESOURCE: - hr = BAEngineSetUpdateSource(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_COMPAREVERSIONS: - hr = BAEngineCompareVersions(pContext, pvArgs, pvResults); - break; - case BOOTSTRAPPER_ENGINE_MESSAGE_GETRELATEDBUNDLEVARIABLE: - hr = BAEngineGetRelatedBundleVariable(pContext, pvArgs, pvResults); - break; - default: - hr = E_NOTIMPL; - break; - } - -LExit: - return hr; -} -- cgit v1.2.3-55-g6feb