summaryrefslogtreecommitdiff
path: root/src/api/burn/balutil
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-06-14 15:09:49 -0500
committerSean Hall <r.sean.hall@gmail.com>2022-06-14 21:51:14 -0500
commitdea657295df261bb0e3e4d620eeae321531e3a11 (patch)
tree718a4b3c9697a2b6e926ad74404dc22f2cc4d22b /src/api/burn/balutil
parent6f6e4ced9f398ff37a44b91fdba62479cde29d06 (diff)
downloadwix-dea657295df261bb0e3e4d620eeae321531e3a11.tar.gz
wix-dea657295df261bb0e3e4d620eeae321531e3a11.tar.bz2
wix-dea657295df261bb0e3e4d620eeae321531e3a11.zip
Add ability for non-vital cache package action.
Diffstat (limited to 'src/api/burn/balutil')
-rw-r--r--src/api/burn/balutil/inc/BAFunctions.h1
-rw-r--r--src/api/burn/balutil/inc/BalBaseBAFunctions.h11
-rw-r--r--src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h1
-rw-r--r--src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h11
-rw-r--r--src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h14
-rw-r--r--src/api/burn/balutil/inc/IBootstrapperApplication.h9
6 files changed, 46 insertions, 1 deletions
diff --git a/src/api/burn/balutil/inc/BAFunctions.h b/src/api/burn/balutil/inc/BAFunctions.h
index b23dd02e..8ecc04ff 100644
--- a/src/api/burn/balutil/inc/BAFunctions.h
+++ b/src/api/burn/balutil/inc/BAFunctions.h
@@ -92,6 +92,7 @@ enum BA_FUNCTIONS_MESSAGE
92 BA_FUNCTIONS_MESSAGE_ONAPPLYDOWNGRADE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYDOWNGRADE, 92 BA_FUNCTIONS_MESSAGE_ONAPPLYDOWNGRADE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYDOWNGRADE,
93 BA_FUNCTIONS_MESSAGE_ONEXECUTEPROCESSCANCEL = BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPROCESSCANCEL, 93 BA_FUNCTIONS_MESSAGE_ONEXECUTEPROCESSCANCEL = BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPROCESSCANCEL,
94 BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDBUNDLEPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDBUNDLEPACKAGE, 94 BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDBUNDLEPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDBUNDLEPACKAGE,
95 BA_FUNCTIONS_MESSAGE_ONCACHEPACKAGENONVITALVALIDATIONFAILURE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPACKAGENONVITALVALIDATIONFAILURE,
95 96
96 BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024, 97 BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024,
97 BA_FUNCTIONS_MESSAGE_WNDPROC, 98 BA_FUNCTIONS_MESSAGE_WNDPROC,
diff --git a/src/api/burn/balutil/inc/BalBaseBAFunctions.h b/src/api/burn/balutil/inc/BalBaseBAFunctions.h
index ca070553..49e97815 100644
--- a/src/api/burn/balutil/inc/BalBaseBAFunctions.h
+++ b/src/api/burn/balutil/inc/BalBaseBAFunctions.h
@@ -447,6 +447,7 @@ public: // IBootstrapperApplication
447 __in_z LPCWSTR /*wzPackageId*/, 447 __in_z LPCWSTR /*wzPackageId*/,
448 __in DWORD /*cCachePayloads*/, 448 __in DWORD /*cCachePayloads*/,
449 __in DWORD64 /*dw64PackageCacheSize*/, 449 __in DWORD64 /*dw64PackageCacheSize*/,
450 __in BOOL /*fVital*/,
450 __inout BOOL* /*pfCancel*/ 451 __inout BOOL* /*pfCancel*/
451 ) 452 )
452 { 453 {
@@ -892,6 +893,16 @@ public: // IBootstrapperApplication
892 return S_OK; 893 return S_OK;
893 } 894 }
894 895
896 virtual STDMETHODIMP OnCachePackageNonVitalValidationFailure(
897 __in_z LPCWSTR /*wzPackageId*/,
898 __in HRESULT /*hrStatus*/,
899 __in BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION /*recommendation*/,
900 __inout BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION* /*pAction*/
901 )
902 {
903 return S_OK;
904 }
905
895public: // IBAFunctions 906public: // IBAFunctions
896 virtual STDMETHODIMP OnPlan( 907 virtual STDMETHODIMP OnPlan(
897 ) 908 )
diff --git a/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h b/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h
index ff92717d..e10decfc 100644
--- a/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h
+++ b/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h
@@ -163,6 +163,7 @@ static HRESULT WINAPI BalBaseBAFunctionsProc(
163 case BA_FUNCTIONS_MESSAGE_ONAPPLYDOWNGRADE: 163 case BA_FUNCTIONS_MESSAGE_ONAPPLYDOWNGRADE:
164 case BA_FUNCTIONS_MESSAGE_ONEXECUTEPROCESSCANCEL: 164 case BA_FUNCTIONS_MESSAGE_ONEXECUTEPROCESSCANCEL:
165 case BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDBUNDLEPACKAGE: 165 case BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDBUNDLEPACKAGE:
166 case BA_FUNCTIONS_MESSAGE_ONCACHEPACKAGENONVITALVALIDATIONFAILURE:
166 hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext); 167 hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext);
167 break; 168 break;
168 case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED: 169 case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED:
diff --git a/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h b/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h
index fc9c4dd7..aa1ca56f 100644
--- a/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h
+++ b/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h
@@ -505,6 +505,7 @@ public: // IBootstrapperApplication
505 __in_z LPCWSTR /*wzPackageId*/, 505 __in_z LPCWSTR /*wzPackageId*/,
506 __in DWORD /*cCachePayloads*/, 506 __in DWORD /*cCachePayloads*/,
507 __in DWORD64 /*dw64PackageCacheSize*/, 507 __in DWORD64 /*dw64PackageCacheSize*/,
508 __in BOOL /*fVital*/,
508 __inout BOOL* pfCancel 509 __inout BOOL* pfCancel
509 ) 510 )
510 { 511 {
@@ -1084,6 +1085,16 @@ public: // IBootstrapperApplication
1084 return S_OK; 1085 return S_OK;
1085 } 1086 }
1086 1087
1088 virtual STDMETHODIMP OnCachePackageNonVitalValidationFailure(
1089 __in_z LPCWSTR /*wzPackageId*/,
1090 __in HRESULT /*hrStatus*/,
1091 __in BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION /*recommendation*/,
1092 __inout BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION* /*pAction*/
1093 )
1094 {
1095 return S_OK;
1096 }
1097
1087public: //CBalBaseBootstrapperApplication 1098public: //CBalBaseBootstrapperApplication
1088 virtual STDMETHODIMP Initialize( 1099 virtual STDMETHODIMP Initialize(
1089 __in const BOOTSTRAPPER_CREATE_ARGS* pCreateArgs 1100 __in const BOOTSTRAPPER_CREATE_ARGS* pCreateArgs
diff --git a/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h b/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h
index 92243540..3054731f 100644
--- a/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h
+++ b/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h
@@ -330,7 +330,7 @@ static HRESULT BalBaseBAProcOnCachePackageBegin(
330 __inout BA_ONCACHEPACKAGEBEGIN_RESULTS* pResults 330 __inout BA_ONCACHEPACKAGEBEGIN_RESULTS* pResults
331 ) 331 )
332{ 332{
333 return pBA->OnCachePackageBegin(pArgs->wzPackageId, pArgs->cCachePayloads, pArgs->dw64PackageCacheSize, &pResults->fCancel); 333 return pBA->OnCachePackageBegin(pArgs->wzPackageId, pArgs->cCachePayloads, pArgs->dw64PackageCacheSize, pArgs->fVital, &pResults->fCancel);
334} 334}
335 335
336static HRESULT BalBaseBAProcOnCacheAcquireBegin( 336static HRESULT BalBaseBAProcOnCacheAcquireBegin(
@@ -756,6 +756,15 @@ static HRESULT BalBaseBAProcOnDetectRelatedBundlePackage(
756 return pBA->OnDetectRelatedBundlePackage(pArgs->wzPackageId, pArgs->wzBundleId, pArgs->relationType, pArgs->fPerMachine, pArgs->wzVersion, &pResults->fCancel); 756 return pBA->OnDetectRelatedBundlePackage(pArgs->wzPackageId, pArgs->wzBundleId, pArgs->relationType, pArgs->fPerMachine, pArgs->wzVersion, &pResults->fCancel);
757} 757}
758 758
759static HRESULT BalBaseBAProcOnCachePackageNonVitalValidationFailure(
760 __in IBootstrapperApplication* pBA,
761 __in BA_ONCACHEPACKAGENONVITALVALIDATIONFAILURE_ARGS* pArgs,
762 __inout BA_ONCACHEPACKAGENONVITALVALIDATIONFAILURE_RESULTS* pResults
763 )
764{
765 return pBA->OnCachePackageNonVitalValidationFailure(pArgs->wzPackageId, pArgs->hrStatus, pArgs->recommendation, &pResults->action);
766}
767
759/******************************************************************* 768/*******************************************************************
760BalBaseBootstrapperApplicationProc - requires pvContext to be of type IBootstrapperApplication. 769BalBaseBootstrapperApplicationProc - requires pvContext to be of type IBootstrapperApplication.
761 Provides a default mapping between the new message based BA interface and 770 Provides a default mapping between the new message based BA interface and
@@ -1024,6 +1033,9 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc(
1024 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDBUNDLEPACKAGE: 1033 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDBUNDLEPACKAGE:
1025 hr = BalBaseBAProcOnDetectRelatedBundlePackage(pBA, reinterpret_cast<BA_ONDETECTRELATEDBUNDLEPACKAGE_ARGS*>(pvArgs), reinterpret_cast<BA_ONDETECTRELATEDBUNDLEPACKAGE_RESULTS*>(pvResults)); 1034 hr = BalBaseBAProcOnDetectRelatedBundlePackage(pBA, reinterpret_cast<BA_ONDETECTRELATEDBUNDLEPACKAGE_ARGS*>(pvArgs), reinterpret_cast<BA_ONDETECTRELATEDBUNDLEPACKAGE_RESULTS*>(pvResults));
1026 break; 1035 break;
1036 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPACKAGENONVITALVALIDATIONFAILURE:
1037 hr = BalBaseBAProcOnCachePackageNonVitalValidationFailure(pBA, reinterpret_cast<BA_ONCACHEPACKAGENONVITALVALIDATIONFAILURE_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHEPACKAGENONVITALVALIDATIONFAILURE_RESULTS*>(pvResults));
1038 break;
1027 } 1039 }
1028 } 1040 }
1029 1041
diff --git a/src/api/burn/balutil/inc/IBootstrapperApplication.h b/src/api/burn/balutil/inc/IBootstrapperApplication.h
index 382d5aad..0362e171 100644
--- a/src/api/burn/balutil/inc/IBootstrapperApplication.h
+++ b/src/api/burn/balutil/inc/IBootstrapperApplication.h
@@ -343,6 +343,7 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
343 __in_z LPCWSTR wzPackageId, 343 __in_z LPCWSTR wzPackageId,
344 __in DWORD cCachePayloads, 344 __in DWORD cCachePayloads,
345 __in DWORD64 dw64PackageCacheSize, 345 __in DWORD64 dw64PackageCacheSize,
346 __in BOOL fVital,
346 __inout BOOL* pfCancel 347 __inout BOOL* pfCancel
347 ) = 0; 348 ) = 0;
348 349
@@ -728,4 +729,12 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
728 __in_z LPCWSTR wzVersion, 729 __in_z LPCWSTR wzVersion,
729 __inout BOOL* pfCancel 730 __inout BOOL* pfCancel
730 ) = 0; 731 ) = 0;
732
733 // OnCachePackageNonVitalValidationFailure - called when the engine failed validating a package in the package cache that is non-vital to execution.
734 STDMETHOD(OnCachePackageNonVitalValidationFailure)(
735 __in_z LPCWSTR wzPackageId,
736 __in HRESULT hrStatus,
737 __in BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION recommendation,
738 __inout BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION* pAction
739 ) = 0;
731}; 740};