aboutsummaryrefslogtreecommitdiff
path: root/src/engine/elevation.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/elevation.h')
-rw-r--r--src/engine/elevation.h178
1 files changed, 178 insertions, 0 deletions
diff --git a/src/engine/elevation.h b/src/engine/elevation.h
new file mode 100644
index 00000000..d82d9b1c
--- /dev/null
+++ b/src/engine/elevation.h
@@ -0,0 +1,178 @@
1#pragma once
2// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
3
4
5#ifdef __cplusplus
6extern "C" {
7#endif
8
9
10// Parent (per-user process) side functions.
11HRESULT ElevationElevate(
12 __in BURN_ENGINE_STATE* pEngineState,
13 __in_opt HWND hwndParent
14 );
15HRESULT ElevationApplyInitialize(
16 __in HANDLE hPipe,
17 __in BURN_VARIABLES* pVariables,
18 __in BOOTSTRAPPER_ACTION action,
19 __in BURN_AU_PAUSE_ACTION auAction,
20 __in BOOL fTakeSystemRestorePoint
21 );
22HRESULT ElevationApplyUninitialize(
23 __in HANDLE hPipe
24 );
25HRESULT ElevationSessionBegin(
26 __in HANDLE hPipe,
27 __in_z LPCWSTR wzEngineWorkingPath,
28 __in_z LPCWSTR wzResumeCommandLine,
29 __in BOOL fDisableResume,
30 __in BURN_VARIABLES* pVariables,
31 __in DWORD dwRegistrationOperations,
32 __in BURN_DEPENDENCY_REGISTRATION_ACTION dependencyRegistrationAction,
33 __in DWORD64 qwEstimatedSize
34 );
35HRESULT ElevationSessionResume(
36 __in HANDLE hPipe,
37 __in_z LPCWSTR wzResumeCommandLine,
38 __in BOOL fDisableResume,
39 __in BURN_VARIABLES* pVariables
40 );
41HRESULT ElevationSessionEnd(
42 __in HANDLE hPipe,
43 __in BURN_RESUME_MODE resumeMode,
44 __in BOOTSTRAPPER_APPLY_RESTART restart,
45 __in BURN_DEPENDENCY_REGISTRATION_ACTION dependencyRegistrationAction
46 );
47HRESULT ElevationSaveState(
48 __in HANDLE hPipe,
49 __in_bcount(cbBuffer) BYTE* pbBuffer,
50 __in SIZE_T cbBuffer
51 );
52HRESULT ElevationLayoutBundle(
53 __in HANDLE hPipe,
54 __in_z LPCWSTR wzLayoutDirectory,
55 __in_z LPCWSTR wzUnverifiedPath
56 );
57HRESULT ElevationCacheOrLayoutContainerOrPayload(
58 __in HANDLE hPipe,
59 __in_opt BURN_CONTAINER* pContainer,
60 __in_opt BURN_PACKAGE* pPackage,
61 __in_opt BURN_PAYLOAD* pPayload,
62 __in_z_opt LPCWSTR wzLayoutDirectory,
63 __in_z LPCWSTR wzUnverifiedPath,
64 __in BOOL fMove
65 );
66HRESULT ElevationCacheCleanup(
67 __in HANDLE hPipe
68 );
69HRESULT ElevationProcessDependentRegistration(
70 __in HANDLE hPipe,
71 __in const BURN_DEPENDENT_REGISTRATION_ACTION* pAction
72 );
73HRESULT ElevationExecuteExePackage(
74 __in HANDLE hPipe,
75 __in BURN_EXECUTE_ACTION* pExecuteAction,
76 __in BURN_VARIABLES* pVariables,
77 __in BOOL fRollback,
78 __in PFN_GENERICMESSAGEHANDLER pfnGenericExecuteProgress,
79 __in LPVOID pvContext,
80 __out BOOTSTRAPPER_APPLY_RESTART* pRestart
81 );
82HRESULT ElevationExecuteMsiPackage(
83 __in HANDLE hPipe,
84 __in_opt HWND hwndParent,
85 __in BURN_EXECUTE_ACTION* pExecuteAction,
86 __in BURN_VARIABLES* pVariables,
87 __in BOOL fRollback,
88 __in PFN_MSIEXECUTEMESSAGEHANDLER pfnMessageHandler,
89 __in LPVOID pvContext,
90 __out BOOTSTRAPPER_APPLY_RESTART* pRestart
91 );
92HRESULT ElevationExecuteMspPackage(
93 __in HANDLE hPipe,
94 __in_opt HWND hwndParent,
95 __in BURN_EXECUTE_ACTION* pExecuteAction,
96 __in BURN_VARIABLES* pVariables,
97 __in BOOL fRollback,
98 __in PFN_MSIEXECUTEMESSAGEHANDLER pfnMessageHandler,
99 __in LPVOID pvContext,
100 __out BOOTSTRAPPER_APPLY_RESTART* pRestart
101 );
102HRESULT ElevationExecuteMsuPackage(
103 __in HANDLE hPipe,
104 __in BURN_EXECUTE_ACTION* pExecuteAction,
105 __in BOOL fRollback,
106 __in BOOL fStopWusaService,
107 __in PFN_GENERICMESSAGEHANDLER pfnGenericExecuteProgress,
108 __in LPVOID pvContext,
109 __out BOOTSTRAPPER_APPLY_RESTART* pRestart
110 );
111HRESULT ElevationExecutePackageProviderAction(
112 __in HANDLE hPipe,
113 __in BURN_EXECUTE_ACTION* pExecuteAction
114 );
115HRESULT ElevationExecutePackageDependencyAction(
116 __in HANDLE hPipe,
117 __in BURN_EXECUTE_ACTION* pExecuteAction
118 );
119HRESULT ElevationLoadCompatiblePackageAction(
120 __in HANDLE hPipe,
121 __in BURN_EXECUTE_ACTION* pExecuteAction
122 );
123HRESULT ElevationLaunchElevatedChild(
124 __in HANDLE hPipe,
125 __in BURN_PACKAGE* pPackage,
126 __in LPCWSTR wzPipeName,
127 __in LPCWSTR wzPipeToken,
128 __out DWORD* pdwChildPid
129 );
130HRESULT ElevationCleanPackage(
131 __in HANDLE hPipe,
132 __in BURN_PACKAGE* pPackage
133 );
134HRESULT ElevationLaunchApprovedExe(
135 __in HANDLE hPipe,
136 __in BURN_LAUNCH_APPROVED_EXE* pLaunchApprovedExe,
137 __out DWORD* pdwProcessId
138 );
139
140// Child (per-machine process) side functions.
141HRESULT ElevationChildPumpMessages(
142 __in DWORD dwLoggingTlsId,
143 __in HANDLE hPipe,
144 __in HANDLE hCachePipe,
145 __in BURN_APPROVED_EXES* pApprovedExes,
146 __in BURN_CONTAINERS* pContainers,
147 __in BURN_PACKAGES* pPackages,
148 __in BURN_PAYLOADS* pPayloads,
149 __in BURN_VARIABLES* pVariables,
150 __in BURN_REGISTRATION* pRegistration,
151 __in BURN_USER_EXPERIENCE* pUserExperience,
152 __out HANDLE* phLock,
153 __out BOOL* pfDisabledAutomaticUpdates,
154 __out DWORD* pdwChildExitCode,
155 __out BOOL* pfRestart
156 );
157HRESULT ElevationChildResumeAutomaticUpdates();
158
159
160HRESULT ElevationMsiBeginTransaction(
161 __in HANDLE hPipe,
162 __in_opt HWND hwndParent,
163 __in LPVOID pvContext
164);
165HRESULT ElevationMsiCommitTransaction(
166 __in HANDLE hPipe,
167 __in_opt HWND hwndParent,
168 __in LPVOID pvContext
169);
170HRESULT ElevationMsiRollbackTransaction(
171 __in HANDLE hPipe,
172 __in_opt HWND hwndParent,
173 __in LPVOID pvContext
174);
175
176#ifdef __cplusplus
177}
178#endif