summaryrefslogtreecommitdiff
path: root/src/burn/engine/userexperience.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn/engine/userexperience.cpp')
-rw-r--r--src/burn/engine/userexperience.cpp40
1 files changed, 38 insertions, 2 deletions
diff --git a/src/burn/engine/userexperience.cpp b/src/burn/engine/userexperience.cpp
index 87ef4de1..a97234ef 100644
--- a/src/burn/engine/userexperience.cpp
+++ b/src/burn/engine/userexperience.cpp
@@ -104,7 +104,7 @@ extern "C" HRESULT UserExperienceLoad(
104 args.pCommand = pCommand; 104 args.pCommand = pCommand;
105 args.pfnBootstrapperEngineProc = EngineForApplicationProc; 105 args.pfnBootstrapperEngineProc = EngineForApplicationProc;
106 args.pvBootstrapperEngineProcContext = pEngineContext; 106 args.pvBootstrapperEngineProcContext = pEngineContext;
107 args.qwEngineAPIVersion = MAKEQWORDVERSION(2022, 3, 31, 0); 107 args.qwEngineAPIVersion = MAKEQWORDVERSION(2022, 6, 10, 0);
108 108
109 results.cbSize = sizeof(BOOTSTRAPPER_CREATE_RESULTS); 109 results.cbSize = sizeof(BOOTSTRAPPER_CREATE_RESULTS);
110 110
@@ -726,7 +726,8 @@ EXTERN_C BAAPI UserExperienceOnCachePackageBegin(
726 __in BURN_USER_EXPERIENCE* pUserExperience, 726 __in BURN_USER_EXPERIENCE* pUserExperience,
727 __in_z LPCWSTR wzPackageId, 727 __in_z LPCWSTR wzPackageId,
728 __in DWORD cCachePayloads, 728 __in DWORD cCachePayloads,
729 __in DWORD64 dw64PackageCacheSize 729 __in DWORD64 dw64PackageCacheSize,
730 __in BOOL fVital
730 ) 731 )
731{ 732{
732 HRESULT hr = S_OK; 733 HRESULT hr = S_OK;
@@ -737,6 +738,7 @@ EXTERN_C BAAPI UserExperienceOnCachePackageBegin(
737 args.wzPackageId = wzPackageId; 738 args.wzPackageId = wzPackageId;
738 args.cCachePayloads = cCachePayloads; 739 args.cCachePayloads = cCachePayloads;
739 args.dw64PackageCacheSize = dw64PackageCacheSize; 740 args.dw64PackageCacheSize = dw64PackageCacheSize;
741 args.fVital = fVital;
740 742
741 results.cbSize = sizeof(results); 743 results.cbSize = sizeof(results);
742 744
@@ -783,6 +785,40 @@ LExit:
783 return hr; 785 return hr;
784} 786}
785 787
788EXTERN_C BAAPI UserExperienceOnCachePackageNonVitalValidationFailure(
789 __in BURN_USER_EXPERIENCE* pUserExperience,
790 __in_z LPCWSTR wzPackageId,
791 __in HRESULT hrStatus,
792 __inout BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION* pAction
793 )
794{
795 HRESULT hr = S_OK;
796 BA_ONCACHEPACKAGENONVITALVALIDATIONFAILURE_ARGS args = { };
797 BA_ONCACHEPACKAGENONVITALVALIDATIONFAILURE_RESULTS results = { };
798
799 args.cbSize = sizeof(args);
800 args.wzPackageId = wzPackageId;
801 args.hrStatus = hrStatus;
802 args.recommendation = *pAction;
803
804 results.cbSize = sizeof(results);
805 results.action = *pAction;
806
807 hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPACKAGENONVITALVALIDATIONFAILURE, &args, &results);
808 ExitOnFailure(hr, "BA OnCachePackageNonVitalValidationFailure failed.");
809
810 switch (results.action)
811 {
812 case BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION_NONE: __fallthrough;
813 case BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION_ACQUIRE:
814 *pAction = results.action;
815 break;
816 }
817
818LExit:
819 return hr;
820}
821
786EXTERN_C BAAPI UserExperienceOnCachePayloadExtractBegin( 822EXTERN_C BAAPI UserExperienceOnCachePayloadExtractBegin(
787 __in BURN_USER_EXPERIENCE* pUserExperience, 823 __in BURN_USER_EXPERIENCE* pUserExperience,
788 __in_z_opt LPCWSTR wzContainerId, 824 __in_z_opt LPCWSTR wzContainerId,