summaryrefslogtreecommitdiff
path: root/src/burn/engine/apply.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn/engine/apply.cpp')
-rw-r--r--src/burn/engine/apply.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/burn/engine/apply.cpp b/src/burn/engine/apply.cpp
index 9185e33a..2168cba6 100644
--- a/src/burn/engine/apply.cpp
+++ b/src/burn/engine/apply.cpp
@@ -252,7 +252,8 @@ static HRESULT ExecuteMsuPackage(
252static HRESULT ExecutePackageProviderAction( 252static HRESULT ExecutePackageProviderAction(
253 __in BURN_ENGINE_STATE* pEngineState, 253 __in BURN_ENGINE_STATE* pEngineState,
254 __in BURN_EXECUTE_ACTION* pAction, 254 __in BURN_EXECUTE_ACTION* pAction,
255 __in BURN_EXECUTE_CONTEXT* pContext 255 __in BURN_EXECUTE_CONTEXT* pContext,
256 __in BOOL fRollback
256 ); 257 );
257static HRESULT ExecuteDependencyAction( 258static HRESULT ExecuteDependencyAction(
258 __in BURN_ENGINE_STATE* pEngineState, 259 __in BURN_ENGINE_STATE* pEngineState,
@@ -2351,7 +2352,7 @@ static HRESULT DoExecuteAction(
2351 break; 2352 break;
2352 2353
2353 case BURN_EXECUTE_ACTION_TYPE_PACKAGE_PROVIDER: 2354 case BURN_EXECUTE_ACTION_TYPE_PACKAGE_PROVIDER:
2354 hr = ExecutePackageProviderAction(pEngineState, pExecuteAction, pContext); 2355 hr = ExecutePackageProviderAction(pEngineState, pExecuteAction, pContext, FALSE);
2355 ExitOnFailure(hr, "Failed to execute package provider registration action."); 2356 ExitOnFailure(hr, "Failed to execute package provider registration action.");
2356 break; 2357 break;
2357 2358
@@ -2474,7 +2475,7 @@ static HRESULT DoRollbackActions(
2474 break; 2475 break;
2475 2476
2476 case BURN_EXECUTE_ACTION_TYPE_PACKAGE_PROVIDER: 2477 case BURN_EXECUTE_ACTION_TYPE_PACKAGE_PROVIDER:
2477 hr = ExecutePackageProviderAction(pEngineState, pRollbackAction, pContext); 2478 hr = ExecutePackageProviderAction(pEngineState, pRollbackAction, pContext, TRUE);
2478 IgnoreRollbackError(hr, "Failed to rollback package provider action."); 2479 IgnoreRollbackError(hr, "Failed to rollback package provider action.");
2479 break; 2480 break;
2480 2481
@@ -2887,19 +2888,23 @@ LExit:
2887static HRESULT ExecutePackageProviderAction( 2888static HRESULT ExecutePackageProviderAction(
2888 __in BURN_ENGINE_STATE* pEngineState, 2889 __in BURN_ENGINE_STATE* pEngineState,
2889 __in BURN_EXECUTE_ACTION* pAction, 2890 __in BURN_EXECUTE_ACTION* pAction,
2890 __in BURN_EXECUTE_CONTEXT* /*pContext*/ 2891 __in BURN_EXECUTE_CONTEXT* pContext,
2892 __in BOOL fRollback
2891 ) 2893 )
2892{ 2894{
2893 HRESULT hr = S_OK; 2895 HRESULT hr = S_OK;
2894 2896
2897 Assert(pContext->fRollback == fRollback);
2898 UNREFERENCED_PARAMETER(pContext);
2899
2895 if (pAction->packageProvider.pPackage->fPerMachine) 2900 if (pAction->packageProvider.pPackage->fPerMachine)
2896 { 2901 {
2897 hr = ElevationExecutePackageProviderAction(pEngineState->companionConnection.hPipe, pAction); 2902 hr = ElevationExecutePackageProviderAction(pEngineState->companionConnection.hPipe, pAction, fRollback);
2898 ExitOnFailure(hr, "Failed to register the package provider on per-machine package."); 2903 ExitOnFailure(hr, "Failed to register the package provider on per-machine package.");
2899 } 2904 }
2900 else 2905 else
2901 { 2906 {
2902 hr = DependencyExecutePackageProviderAction(pAction); 2907 hr = DependencyExecutePackageProviderAction(pAction, fRollback);
2903 ExitOnFailure(hr, "Failed to register the package provider on per-user package."); 2908 ExitOnFailure(hr, "Failed to register the package provider on per-user package.");
2904 } 2909 }
2905 2910