diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2022-01-31 15:44:00 -0600 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2022-02-01 23:36:23 -0600 |
commit | 56c980318e7167be591f7807c2fc34cea7d5cb42 (patch) | |
tree | e074b3548d8dfe51f420b6d0278a6fe17191b6ec /src/burn/engine/elevation.cpp | |
parent | bfe5ab76b5ecc1a21078534e6fba90d12cfd3c00 (diff) | |
download | wix-56c980318e7167be591f7807c2fc34cea7d5cb42.tar.gz wix-56c980318e7167be591f7807c2fc34cea7d5cb42.tar.bz2 wix-56c980318e7167be591f7807c2fc34cea7d5cb42.zip |
The bundle provider's presence needs to follow ARP registration.
Diffstat (limited to 'src/burn/engine/elevation.cpp')
-rw-r--r-- | src/burn/engine/elevation.cpp | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/burn/engine/elevation.cpp b/src/burn/engine/elevation.cpp index 9ebba7c5..eafc08ee 100644 --- a/src/burn/engine/elevation.cpp +++ b/src/burn/engine/elevation.cpp | |||
@@ -525,7 +525,7 @@ extern "C" HRESULT ElevationSessionBegin( | |||
525 | __in BOOL fDisableResume, | 525 | __in BOOL fDisableResume, |
526 | __in BURN_VARIABLES* pVariables, | 526 | __in BURN_VARIABLES* pVariables, |
527 | __in DWORD dwRegistrationOperations, | 527 | __in DWORD dwRegistrationOperations, |
528 | __in BURN_DEPENDENCY_REGISTRATION_ACTION dependencyRegistrationAction, | 528 | __in BOOL fDetectedForeignProviderKeyBundleId, |
529 | __in DWORD64 qwEstimatedSize, | 529 | __in DWORD64 qwEstimatedSize, |
530 | __in BOOTSTRAPPER_REGISTRATION_TYPE registrationType | 530 | __in BOOTSTRAPPER_REGISTRATION_TYPE registrationType |
531 | ) | 531 | ) |
@@ -548,7 +548,7 @@ extern "C" HRESULT ElevationSessionBegin( | |||
548 | hr = BuffWriteNumber(&pbData, &cbData, dwRegistrationOperations); | 548 | hr = BuffWriteNumber(&pbData, &cbData, dwRegistrationOperations); |
549 | ExitOnFailure(hr, "Failed to write registration operations to message buffer."); | 549 | ExitOnFailure(hr, "Failed to write registration operations to message buffer."); |
550 | 550 | ||
551 | hr = BuffWriteNumber(&pbData, &cbData, (DWORD)dependencyRegistrationAction); | 551 | hr = BuffWriteNumber(&pbData, &cbData, (DWORD)fDetectedForeignProviderKeyBundleId); |
552 | ExitOnFailure(hr, "Failed to write dependency registration action to message buffer."); | 552 | ExitOnFailure(hr, "Failed to write dependency registration action to message buffer."); |
553 | 553 | ||
554 | hr = BuffWriteNumber64(&pbData, &cbData, qwEstimatedSize); | 554 | hr = BuffWriteNumber64(&pbData, &cbData, qwEstimatedSize); |
@@ -622,7 +622,7 @@ extern "C" HRESULT ElevationSessionEnd( | |||
622 | __in HANDLE hPipe, | 622 | __in HANDLE hPipe, |
623 | __in BURN_RESUME_MODE resumeMode, | 623 | __in BURN_RESUME_MODE resumeMode, |
624 | __in BOOTSTRAPPER_APPLY_RESTART restart, | 624 | __in BOOTSTRAPPER_APPLY_RESTART restart, |
625 | __in BURN_DEPENDENCY_REGISTRATION_ACTION dependencyRegistrationAction, | 625 | __in BOOL fDetectedForeignProviderKeyBundleId, |
626 | __in BOOTSTRAPPER_REGISTRATION_TYPE registrationType | 626 | __in BOOTSTRAPPER_REGISTRATION_TYPE registrationType |
627 | ) | 627 | ) |
628 | { | 628 | { |
@@ -638,7 +638,7 @@ extern "C" HRESULT ElevationSessionEnd( | |||
638 | hr = BuffWriteNumber(&pbData, &cbData, (DWORD)restart); | 638 | hr = BuffWriteNumber(&pbData, &cbData, (DWORD)restart); |
639 | ExitOnFailure(hr, "Failed to write restart enum to message buffer."); | 639 | ExitOnFailure(hr, "Failed to write restart enum to message buffer."); |
640 | 640 | ||
641 | hr = BuffWriteNumber(&pbData, &cbData, (DWORD)dependencyRegistrationAction); | 641 | hr = BuffWriteNumber(&pbData, &cbData, (DWORD)fDetectedForeignProviderKeyBundleId); |
642 | ExitOnFailure(hr, "Failed to write dependency registration action to message buffer."); | 642 | ExitOnFailure(hr, "Failed to write dependency registration action to message buffer."); |
643 | 643 | ||
644 | hr = BuffWriteNumber(&pbData, &cbData, (DWORD)registrationType); | 644 | hr = BuffWriteNumber(&pbData, &cbData, (DWORD)registrationType); |
@@ -2359,7 +2359,6 @@ static HRESULT OnSessionBegin( | |||
2359 | SIZE_T iData = 0; | 2359 | SIZE_T iData = 0; |
2360 | LPWSTR sczEngineWorkingPath = NULL; | 2360 | LPWSTR sczEngineWorkingPath = NULL; |
2361 | DWORD dwRegistrationOperations = 0; | 2361 | DWORD dwRegistrationOperations = 0; |
2362 | DWORD dwDependencyRegistrationAction = 0; | ||
2363 | DWORD64 qwEstimatedSize = 0; | 2362 | DWORD64 qwEstimatedSize = 0; |
2364 | DWORD dwRegistrationType = 0; | 2363 | DWORD dwRegistrationType = 0; |
2365 | 2364 | ||
@@ -2376,7 +2375,7 @@ static HRESULT OnSessionBegin( | |||
2376 | hr = BuffReadNumber(pbData, cbData, &iData, &dwRegistrationOperations); | 2375 | hr = BuffReadNumber(pbData, cbData, &iData, &dwRegistrationOperations); |
2377 | ExitOnFailure(hr, "Failed to read registration operations."); | 2376 | ExitOnFailure(hr, "Failed to read registration operations."); |
2378 | 2377 | ||
2379 | hr = BuffReadNumber(pbData, cbData, &iData, &dwDependencyRegistrationAction); | 2378 | hr = BuffReadNumber(pbData, cbData, &iData, (DWORD*)&pRegistration->fDetectedForeignProviderKeyBundleId); |
2380 | ExitOnFailure(hr, "Failed to read dependency registration action."); | 2379 | ExitOnFailure(hr, "Failed to read dependency registration action."); |
2381 | 2380 | ||
2382 | hr = BuffReadNumber64(pbData, cbData, &iData, &qwEstimatedSize); | 2381 | hr = BuffReadNumber64(pbData, cbData, &iData, &qwEstimatedSize); |
@@ -2389,7 +2388,7 @@ static HRESULT OnSessionBegin( | |||
2389 | ExitOnFailure(hr, "Failed to read variables."); | 2388 | ExitOnFailure(hr, "Failed to read variables."); |
2390 | 2389 | ||
2391 | // Begin session in per-machine process. | 2390 | // Begin session in per-machine process. |
2392 | hr = RegistrationSessionBegin(sczEngineWorkingPath, pRegistration, pCache, pVariables, dwRegistrationOperations, (BURN_DEPENDENCY_REGISTRATION_ACTION)dwDependencyRegistrationAction, qwEstimatedSize, (BOOTSTRAPPER_REGISTRATION_TYPE)dwRegistrationType); | 2391 | hr = RegistrationSessionBegin(sczEngineWorkingPath, pRegistration, pCache, pVariables, dwRegistrationOperations, qwEstimatedSize, (BOOTSTRAPPER_REGISTRATION_TYPE)dwRegistrationType); |
2393 | ExitOnFailure(hr, "Failed to begin registration session."); | 2392 | ExitOnFailure(hr, "Failed to begin registration session."); |
2394 | 2393 | ||
2395 | LExit: | 2394 | LExit: |
@@ -2443,7 +2442,6 @@ static HRESULT OnSessionEnd( | |||
2443 | SIZE_T iData = 0; | 2442 | SIZE_T iData = 0; |
2444 | DWORD dwResumeMode = 0; | 2443 | DWORD dwResumeMode = 0; |
2445 | DWORD dwRestart = 0; | 2444 | DWORD dwRestart = 0; |
2446 | DWORD dwDependencyRegistrationAction = 0; | ||
2447 | DWORD dwRegistrationType = 0; | 2445 | DWORD dwRegistrationType = 0; |
2448 | 2446 | ||
2449 | // Deserialize message data. | 2447 | // Deserialize message data. |
@@ -2453,14 +2451,14 @@ static HRESULT OnSessionEnd( | |||
2453 | hr = BuffReadNumber(pbData, cbData, &iData, &dwRestart); | 2451 | hr = BuffReadNumber(pbData, cbData, &iData, &dwRestart); |
2454 | ExitOnFailure(hr, "Failed to read restart enum."); | 2452 | ExitOnFailure(hr, "Failed to read restart enum."); |
2455 | 2453 | ||
2456 | hr = BuffReadNumber(pbData, cbData, &iData, &dwDependencyRegistrationAction); | 2454 | hr = BuffReadNumber(pbData, cbData, &iData, (DWORD*)&pRegistration->fDetectedForeignProviderKeyBundleId); |
2457 | ExitOnFailure(hr, "Failed to read dependency registration action."); | 2455 | ExitOnFailure(hr, "Failed to read dependency registration action."); |
2458 | 2456 | ||
2459 | hr = BuffReadNumber(pbData, cbData, &iData, &dwRegistrationType); | 2457 | hr = BuffReadNumber(pbData, cbData, &iData, &dwRegistrationType); |
2460 | ExitOnFailure(hr, "Failed to read dependency registration action."); | 2458 | ExitOnFailure(hr, "Failed to read dependency registration action."); |
2461 | 2459 | ||
2462 | // suspend session in per-machine process | 2460 | // suspend session in per-machine process |
2463 | hr = RegistrationSessionEnd(pRegistration, pCache, pVariables, pPackages, (BURN_RESUME_MODE)dwResumeMode, (BOOTSTRAPPER_APPLY_RESTART)dwRestart, (BURN_DEPENDENCY_REGISTRATION_ACTION)dwDependencyRegistrationAction, (BOOTSTRAPPER_REGISTRATION_TYPE)dwRegistrationType); | 2461 | hr = RegistrationSessionEnd(pRegistration, pCache, pVariables, pPackages, (BURN_RESUME_MODE)dwResumeMode, (BOOTSTRAPPER_APPLY_RESTART)dwRestart, (BOOTSTRAPPER_REGISTRATION_TYPE)dwRegistrationType); |
2464 | ExitOnFailure(hr, "Failed to suspend registration session."); | 2462 | ExitOnFailure(hr, "Failed to suspend registration session."); |
2465 | 2463 | ||
2466 | LExit: | 2464 | LExit: |