@joebigelow / wix / commits / bbc36178

Create log for elevated process.

Sean Hall committed Aug 19, 2022 at 13:48 UTC bbc36178172e4198351f2f84a91faf56c65e1475
3 files changed +22
src/burn/engine/engine.cpp
+12
@@ -106,6 +106,7 @@ extern "C" HRESULT EngineRun(
106 LPWSTR sczExePath = NULL;
107 BOOL fRunUntrusted = FALSE;
108 BOOL fRunNormal = FALSE;
109 + BOOL fRunElevated = FALSE;
110 BOOL fRunRunOnce = FALSE;
111 BOOL fRestart = FALSE;
112
@@ -220,6 +221,8 @@ extern "C" HRESULT EngineRun(
221 break;
222
223 case BURN_MODE_ELEVATED:
224 + fRunElevated = TRUE;
225 +
226 hr = RunElevated(hInstance, wzCommandLine, &engineState);
227 ExitOnFailure(hr, "Failed to run per-machine mode.");
228 break;
@@ -320,6 +323,11 @@ LExit:
323 {
324 LogId(REPORT_STANDARD, MSG_EXITING_RUN_ONCE, FAILED(hr) ? (int)hr : *pdwExitCode);
325 }
326 + else if (fRunElevated)
327 + {
328 + LogId(REPORT_STANDARD, MSG_EXITING_ELEVATED, FAILED(hr) ? (int)hr : *pdwExitCode);
329 + }
330 +
331
332 if (fLogInitialized)
333 {
@@ -639,6 +647,10 @@ static HRESULT RunElevated(
647 HRESULT hr = S_OK;
648 HANDLE hLock = NULL;
649
650 + // Initialize logging.
651 + hr = LoggingOpen(&pEngineState->log, &pEngineState->internalCommand, &pEngineState->command, &pEngineState->variables, pEngineState->registration.sczDisplayName);
652 + ExitOnFailure(hr, "Failed to open elevated log.");
653 +
654 // connect to per-user process
655 hr = PipeChildConnect(&pEngineState->companionConnection, TRUE);
656 ExitOnFailure(hr, "Failed to connect to unelevated process.");
src/burn/engine/engine.mc
+7
@@ -170,6 +170,13 @@ Language=English
170 Failed to use folder as machine package cache: %2!ls!, encountered error: %1!ls!.
171 .
172
173 +MessageId=21
174 +Severity=Success
175 +SymbolicName=MSG_EXITING_ELEVATED
176 +Language=English
177 +Exit code: 0x%1!x!
178 +.
179 +
180 MessageId=51
181 Severity=Error
182 SymbolicName=MSG_FAILED_PARSE_CONDITION
src/burn/engine/logging.cpp
+3
@@ -77,6 +77,9 @@ extern "C" HRESULT LoggingOpen(
77 case BURN_MODE_UNTRUSTED:
78 wzPostfix = L".cleanroom";
79 break;
80 + case BURN_MODE_ELEVATED:
81 + wzPostfix = L".elevated";
82 + break;
83 case BURN_MODE_RUNONCE:
84 wzPostfix = L".runonce";
85 break;