diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2022-03-18 20:16:07 -0500 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2022-03-19 12:07:32 -0500 |
| commit | fbc1a73743368211d5d8c7fc0625adf6eb9ca50c (patch) | |
| tree | c314d72b4b25afab7a27be664a1bffa5bdd80b3a /src/burn/engine/elevation.cpp | |
| parent | fb54576f1d05e82ba47cd718c4c4f8b3bad624c9 (diff) | |
| download | wix-fbc1a73743368211d5d8c7fc0625adf6eb9ca50c.tar.gz wix-fbc1a73743368211d5d8c7fc0625adf6eb9ca50c.tar.bz2 wix-fbc1a73743368211d5d8c7fc0625adf6eb9ca50c.zip | |
Add checkpoint so Exe and Msu packages rollback after being cancelled.
Fixes 5950
Diffstat (limited to 'src/burn/engine/elevation.cpp')
| -rw-r--r-- | src/burn/engine/elevation.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/burn/engine/elevation.cpp b/src/burn/engine/elevation.cpp index 3c2872f1..ea56e242 100644 --- a/src/burn/engine/elevation.cpp +++ b/src/burn/engine/elevation.cpp | |||
| @@ -44,6 +44,8 @@ typedef enum _BURN_ELEVATION_MESSAGE_TYPE | |||
| 44 | BURN_ELEVATION_MESSAGE_TYPE_BURN_CACHE_SUCCESS, | 44 | BURN_ELEVATION_MESSAGE_TYPE_BURN_CACHE_SUCCESS, |
| 45 | BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_PROGRESS, | 45 | BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_PROGRESS, |
| 46 | BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_PROCESS_CANCEL, | 46 | BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_PROCESS_CANCEL, |
| 47 | BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_PROCESS_STARTED, | ||
| 48 | BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_PROCESS_COMPLETED, | ||
| 47 | BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_ERROR, | 49 | BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_ERROR, |
| 48 | BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_MSI_MESSAGE, | 50 | BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_MSI_MESSAGE, |
| 49 | BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_MSI_FILES_IN_USE, | 51 | BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_MSI_FILES_IN_USE, |
| @@ -1823,6 +1825,14 @@ static HRESULT ProcessGenericExecuteMessages( | |||
| 1823 | ExitOnFailure(hr, "Failed to read processId."); | 1825 | ExitOnFailure(hr, "Failed to read processId."); |
| 1824 | break; | 1826 | break; |
| 1825 | 1827 | ||
| 1828 | case BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_PROCESS_STARTED: | ||
| 1829 | message.type = GENERIC_EXECUTE_MESSAGE_PROCESS_STARTED; | ||
| 1830 | break; | ||
| 1831 | |||
| 1832 | case BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_PROCESS_COMPLETED: | ||
| 1833 | message.type = GENERIC_EXECUTE_MESSAGE_PROCESS_COMPLETED; | ||
| 1834 | break; | ||
| 1835 | |||
| 1826 | case BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_ERROR: | 1836 | case BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_ERROR: |
| 1827 | message.type = GENERIC_EXECUTE_MESSAGE_ERROR; | 1837 | message.type = GENERIC_EXECUTE_MESSAGE_ERROR; |
| 1828 | 1838 | ||
| @@ -3465,6 +3475,14 @@ static int GenericExecuteMessageHandler( | |||
| 3465 | dwMessage = BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_PROCESS_CANCEL; | 3475 | dwMessage = BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_PROCESS_CANCEL; |
| 3466 | break; | 3476 | break; |
| 3467 | 3477 | ||
| 3478 | case GENERIC_EXECUTE_MESSAGE_PROCESS_STARTED: | ||
| 3479 | dwMessage = BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_PROCESS_STARTED; | ||
| 3480 | break; | ||
| 3481 | |||
| 3482 | case GENERIC_EXECUTE_MESSAGE_PROCESS_COMPLETED: | ||
| 3483 | dwMessage = BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_PROCESS_COMPLETED; | ||
| 3484 | break; | ||
| 3485 | |||
| 3468 | case GENERIC_EXECUTE_MESSAGE_ERROR: | 3486 | case GENERIC_EXECUTE_MESSAGE_ERROR: |
| 3469 | // serialize message data | 3487 | // serialize message data |
| 3470 | hr = BuffWriteNumber(&pbData, &cbData, pMessage->error.dwErrorCode); | 3488 | hr = BuffWriteNumber(&pbData, &cbData, pMessage->error.dwErrorCode); |
