aboutsummaryrefslogtreecommitdiff
path: root/src/api/burn/inc/BootstrapperApplication.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/burn/inc/BootstrapperApplication.h')
-rw-r--r--src/api/burn/inc/BootstrapperApplication.h1591
1 files changed, 0 insertions, 1591 deletions
diff --git a/src/api/burn/inc/BootstrapperApplication.h b/src/api/burn/inc/BootstrapperApplication.h
deleted file mode 100644
index 8b945b77..00000000
--- a/src/api/burn/inc/BootstrapperApplication.h
+++ /dev/null
@@ -1,1591 +0,0 @@
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#include "BootstrapperEngine.h"
5
6#if defined(__cplusplus)
7extern "C" {
8#endif
9
10const LPCWSTR BOOTSTRAPPER_APPLICATION_COMMANDLINE_SWITCH_API_VERSION = L"burn.ba.apiver";
11const LPCWSTR BOOTSTRAPPER_APPLICATION_COMMANDLINE_SWITCH_PIPE_NAME = L"burn.ba.pipe";
12const DWORD WIX_5_BOOTSTRAPPER_APPLICATION_API_VERSION = 5;
13
14enum BOOTSTRAPPER_DISPLAY
15{
16 BOOTSTRAPPER_DISPLAY_UNKNOWN,
17 BOOTSTRAPPER_DISPLAY_EMBEDDED,
18 BOOTSTRAPPER_DISPLAY_NONE,
19 BOOTSTRAPPER_DISPLAY_PASSIVE,
20 BOOTSTRAPPER_DISPLAY_FULL,
21};
22
23enum BOOTSTRAPPER_REGISTRATION_TYPE
24{
25 BOOTSTRAPPER_REGISTRATION_TYPE_NONE, // The engine will ignore NONE if it recommended INPROGRESS or FULL.
26 BOOTSTRAPPER_REGISTRATION_TYPE_INPROGRESS,
27 BOOTSTRAPPER_REGISTRATION_TYPE_FULL,
28};
29
30enum BOOTSTRAPPER_RESUME_TYPE
31{
32 BOOTSTRAPPER_RESUME_TYPE_NONE,
33 BOOTSTRAPPER_RESUME_TYPE_INVALID, // resume information is present but invalid
34 BOOTSTRAPPER_RESUME_TYPE_INTERRUPTED, // relaunched after an unexpected interruption
35 BOOTSTRAPPER_RESUME_TYPE_REBOOT, // relaunched after reboot
36 BOOTSTRAPPER_RESUME_TYPE_SUSPEND, // relaunched after suspend
37 BOOTSTRAPPER_RESUME_TYPE_ARP, // launched from ARP
38};
39
40enum BOOTSTRAPPER_ERROR_TYPE
41{
42 BOOTSTRAPPER_ERROR_TYPE_ELEVATE, // error occurred trying to elevate.
43 BOOTSTRAPPER_ERROR_TYPE_WINDOWS_INSTALLER, // error came from windows installer.
44 BOOTSTRAPPER_ERROR_TYPE_EXE_PACKAGE, // error came from an exe package.
45 BOOTSTRAPPER_ERROR_TYPE_HTTP_AUTH_SERVER, // error occurred trying to authenticate with HTTP server.
46 BOOTSTRAPPER_ERROR_TYPE_HTTP_AUTH_PROXY, // error occurred trying to authenticate with HTTP proxy.
47 BOOTSTRAPPER_ERROR_TYPE_APPLY, // error occurred during apply.
48};
49
50enum BOOTSTRAPPER_FILES_IN_USE_TYPE
51{
52 BOOTSTRAPPER_FILES_IN_USE_TYPE_MSI, // INSTALLMESSAGE_FILESINUSE
53 BOOTSTRAPPER_FILES_IN_USE_TYPE_MSI_RM, // INSTALLMESSAGE_RMFILESINUSE
54 BOOTSTRAPPER_FILES_IN_USE_TYPE_NETFX, // MMIO_CLOSE_APPS
55};
56
57enum BOOTSTRAPPER_RELATED_OPERATION
58{
59 BOOTSTRAPPER_RELATED_OPERATION_NONE,
60 BOOTSTRAPPER_RELATED_OPERATION_DOWNGRADE,
61 BOOTSTRAPPER_RELATED_OPERATION_MINOR_UPDATE,
62 BOOTSTRAPPER_RELATED_OPERATION_MAJOR_UPGRADE,
63 BOOTSTRAPPER_RELATED_OPERATION_REMOVE,
64 BOOTSTRAPPER_RELATED_OPERATION_INSTALL,
65 BOOTSTRAPPER_RELATED_OPERATION_REPAIR,
66};
67
68enum BOOTSTRAPPER_CACHE_OPERATION
69{
70 // There is no source available.
71 BOOTSTRAPPER_CACHE_OPERATION_NONE,
72 // Copy the payload or container from the chosen local source.
73 BOOTSTRAPPER_CACHE_OPERATION_COPY,
74 // Download the payload or container using the download URL.
75 BOOTSTRAPPER_CACHE_OPERATION_DOWNLOAD,
76 // Extract the payload from the container.
77 BOOTSTRAPPER_CACHE_OPERATION_EXTRACT,
78};
79
80enum BOOTSTRAPPER_CACHE_RESOLVE_OPERATION
81{
82 // There is no source available.
83 BOOTSTRAPPER_CACHE_RESOLVE_NONE,
84 // Copy the payload or container from the chosen local source.
85 BOOTSTRAPPER_CACHE_RESOLVE_LOCAL,
86 // Download the payload or container from the download URL.
87 BOOTSTRAPPER_CACHE_RESOLVE_DOWNLOAD,
88 // Extract the payload from the container.
89 BOOTSTRAPPER_CACHE_RESOLVE_CONTAINER,
90 // Look again for the payload or container locally.
91 BOOTSTRAPPER_CACHE_RESOLVE_RETRY,
92};
93
94enum BOOTSTRAPPER_CACHE_VERIFY_STEP
95{
96 BOOTSTRAPPER_CACHE_VERIFY_STEP_STAGE,
97 BOOTSTRAPPER_CACHE_VERIFY_STEP_HASH,
98 BOOTSTRAPPER_CACHE_VERIFY_STEP_FINALIZE,
99};
100
101enum BOOTSTRAPPER_APPLY_RESTART
102{
103 BOOTSTRAPPER_APPLY_RESTART_NONE,
104 BOOTSTRAPPER_APPLY_RESTART_REQUIRED,
105 BOOTSTRAPPER_APPLY_RESTART_INITIATED,
106};
107
108enum BOOTSTRAPPER_RELATION_TYPE
109{
110 BOOTSTRAPPER_RELATION_NONE,
111 BOOTSTRAPPER_RELATION_DETECT,
112 BOOTSTRAPPER_RELATION_UPGRADE,
113 BOOTSTRAPPER_RELATION_ADDON,
114 BOOTSTRAPPER_RELATION_PATCH,
115 BOOTSTRAPPER_RELATION_DEPENDENT_ADDON,
116 BOOTSTRAPPER_RELATION_DEPENDENT_PATCH,
117 BOOTSTRAPPER_RELATION_UPDATE,
118 BOOTSTRAPPER_RELATION_CHAIN_PACKAGE,
119};
120
121enum BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE
122{
123 BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE_NONE,
124 BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE_DOWNGRADE,
125 BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE_UPGRADE,
126 BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE_ADDON,
127 BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE_PATCH,
128 BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE_DEPENDENT_ADDON,
129 BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE_DEPENDENT_PATCH,
130};
131
132enum BOOTSTRAPPER_CACHE_TYPE
133{
134 BOOTSTRAPPER_CACHE_TYPE_REMOVE,
135 BOOTSTRAPPER_CACHE_TYPE_KEEP,
136 BOOTSTRAPPER_CACHE_TYPE_FORCE,
137};
138
139enum BOOTSTRAPPER_PACKAGE_CONDITION_RESULT
140{
141 BOOTSTRAPPER_PACKAGE_CONDITION_DEFAULT,
142 BOOTSTRAPPER_PACKAGE_CONDITION_FALSE,
143 BOOTSTRAPPER_PACKAGE_CONDITION_TRUE,
144};
145
146enum BOOTSTRAPPER_MSI_FILE_VERSIONING
147{
148 BOOTSTRAPPER_MSI_FILE_VERSIONING_MISSING_OR_OLDER, //o
149 BOOTSTRAPPER_MSI_FILE_VERSIONING_MISSING_OR_OLDER_OR_EQUAL, //e
150 BOOTSTRAPPER_MSI_FILE_VERSIONING_ALL, //a
151};
152
153enum BOOTSTRAPPER_APPLICATION_MESSAGE
154{
155 BOOTSTRAPPER_APPLICATION_MESSAGE_UNKNOWN = 65536,
156 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCREATE,
157 BOOTSTRAPPER_APPLICATION_MESSAGE_ONDESTROY,
158 BOOTSTRAPPER_APPLICATION_MESSAGE_ONSTARTUP,
159 BOOTSTRAPPER_APPLICATION_MESSAGE_ONSHUTDOWN,
160 BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTBEGIN,
161 BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTCOMPLETE,
162 BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTFORWARDCOMPATIBLEBUNDLE,
163 BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTMSIFEATURE,
164 BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPACKAGEBEGIN,
165 BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPACKAGECOMPLETE,
166 BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPATCHTARGET,
167 BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDBUNDLE,
168 BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDMSIPACKAGE,
169 BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTUPDATEBEGIN,
170 BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTUPDATE,
171 BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTUPDATECOMPLETE,
172 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANBEGIN,
173 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANCOMPLETE,
174 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIFEATURE,
175 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGEBEGIN,
176 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGECOMPLETE,
177 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPATCHTARGET,
178 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRELATEDBUNDLE,
179 BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYBEGIN,
180 BOOTSTRAPPER_APPLICATION_MESSAGE_ONELEVATEBEGIN,
181 BOOTSTRAPPER_APPLICATION_MESSAGE_ONELEVATECOMPLETE,
182 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPROGRESS,
183 BOOTSTRAPPER_APPLICATION_MESSAGE_ONERROR,
184 BOOTSTRAPPER_APPLICATION_MESSAGE_ONREGISTERBEGIN,
185 BOOTSTRAPPER_APPLICATION_MESSAGE_ONREGISTERCOMPLETE,
186 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEBEGIN,
187 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPACKAGEBEGIN,
188 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEACQUIREBEGIN,
189 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEACQUIREPROGRESS,
190 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEACQUIRERESOLVING,
191 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEACQUIRECOMPLETE,
192 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEVERIFYBEGIN,
193 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEVERIFYCOMPLETE,
194 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPACKAGECOMPLETE,
195 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECOMPLETE,
196 BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEBEGIN,
197 BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPACKAGEBEGIN,
198 BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPATCHTARGET,
199 BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPROGRESS,
200 BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEMSIMESSAGE,
201 BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEFILESINUSE,
202 BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPACKAGECOMPLETE,
203 BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTECOMPLETE,
204 BOOTSTRAPPER_APPLICATION_MESSAGE_ONUNREGISTERBEGIN,
205 BOOTSTRAPPER_APPLICATION_MESSAGE_ONUNREGISTERCOMPLETE,
206 BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYCOMPLETE,
207 BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN,
208 BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE,
209 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIPACKAGE,
210 BOOTSTRAPPER_APPLICATION_MESSAGE_ONBEGINMSITRANSACTIONBEGIN,
211 BOOTSTRAPPER_APPLICATION_MESSAGE_ONBEGINMSITRANSACTIONCOMPLETE,
212 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONBEGIN,
213 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONCOMPLETE,
214 BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONBEGIN,
215 BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONCOMPLETE,
216 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESBEGIN,
217 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE,
218 BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN,
219 BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE,
220 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANNEDPACKAGE,
221 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANFORWARDCOMPATIBLEBUNDLE,
222 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEVERIFYPROGRESS,
223 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYBEGIN,
224 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE,
225 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS,
226 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN,
227 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE,
228 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS,
229 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANROLLBACKBOUNDARY,
230 BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTCOMPATIBLEMSIPACKAGE,
231 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANCOMPATIBLEMSIPACKAGEBEGIN,
232 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANCOMPATIBLEMSIPACKAGECOMPLETE,
233 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANNEDCOMPATIBLEPACKAGE,
234 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRESTORERELATEDBUNDLE,
235 BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRELATEDBUNDLETYPE,
236 BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYDOWNGRADE,
237 BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPROCESSCANCEL,
238 BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDBUNDLEPACKAGE,
239 BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPACKAGENONVITALVALIDATIONFAILURE,
240};
241
242enum BOOTSTRAPPER_APPLYCOMPLETE_ACTION
243{
244 BOOTSTRAPPER_APPLYCOMPLETE_ACTION_NONE,
245 // Instructs the engine to restart.
246 // The engine will not launch again after the machine is rebooted.
247 // Ignored if reboot was already initiated by OnExecutePackageComplete().
248 BOOTSTRAPPER_APPLYCOMPLETE_ACTION_RESTART,
249};
250
251enum BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION
252{
253 BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION_NONE,
254 // Instructs the engine to try the acquisition of the payload again.
255 // Ignored if hrStatus is a success.
256 BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION_RETRY,
257};
258
259enum BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION
260{
261 BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION_NONE,
262 // Instructs the engine to ignore non-vital package failures and
263 // continue with the caching.
264 // Ignored if hrStatus is a success or the package is vital.
265 BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION_IGNORE,
266 // Instructs the engine to try the acquisition and verification of the package again.
267 // Ignored if hrStatus is a success.
268 BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION_RETRY,
269};
270
271enum BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION
272{
273 BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION_NONE,
274 // Instructs the engine to try to acquire the package so execution can use it.
275 // Most of the time this is used for installing the package during rollback.
276 BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION_ACQUIRE,
277};
278
279enum BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION
280{
281 BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION_NONE,
282 // Ignored if hrStatus is a success.
283 BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION_RETRYVERIFICATION,
284 // Ignored if hrStatus is a success.
285 BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION_RETRYACQUISITION,
286};
287
288enum BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION
289{
290 BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION_NONE,
291 // Instructs the engine to ignore non-vital package failures and
292 // continue with the install.
293 // Ignored if hrStatus is a success or the package is vital.
294 BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION_IGNORE,
295 // Instructs the engine to try the execution of the package again.
296 // Ignored if hrStatus is a success.
297 BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION_RETRY,
298 // Instructs the engine to stop processing the chain and restart.
299 // The engine will launch again after the machine is restarted.
300 BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION_RESTART,
301 // Instructs the engine to stop processing the chain and
302 // suspend the current state.
303 BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION_SUSPEND,
304};
305
306enum BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION
307{
308 BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION_NONE,
309 // Instructs the engine to stop processing the chain and restart.
310 // The engine will launch again after the machine is restarted.
311 BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION_RESTART,
312};
313
314enum BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION
315{
316 // Instructs the engine to stop waiting for the process to exit.
317 // The package is immediately considered to have failed with ERROR_INSTALL_USEREXIT.
318 // The engine will never rollback the package.
319 BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION_ABANDON,
320 // Instructs the engine to wait for the process to exit.
321 // Once the process has exited, the package is considered to have failed with ERROR_INSTALL_USEREXIT.
322 // This allows the engine to rollback the package if necessary.
323 BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION_WAIT,
324};
325
326enum BOOTSTRAPPER_SHUTDOWN_ACTION
327{
328 BOOTSTRAPPER_SHUTDOWN_ACTION_NONE,
329 // Instructs the engine to restart.
330 // The engine will not launch again after the machine is rebooted.
331 // Ignored if reboot was already initiated by OnExecutePackageComplete().
332 BOOTSTRAPPER_SHUTDOWN_ACTION_RESTART,
333 // Instructs the engine to unload the bootstrapper application and
334 // restart the engine which will load the bootstrapper application again.
335 // Typically used to switch from a native bootstrapper application to a managed one.
336 BOOTSTRAPPER_SHUTDOWN_ACTION_RELOAD_BOOTSTRAPPER,
337 // Opts out of the engine behavior of trying to uninstall itself
338 // when no non-permanent packages are installed.
339 BOOTSTRAPPER_SHUTDOWN_ACTION_SKIP_CLEANUP,
340};
341
342enum BURN_MSI_PROPERTY
343{
344 BURN_MSI_PROPERTY_NONE, // no property added
345 BURN_MSI_PROPERTY_INSTALL, // add BURNMSIINSTALL=1
346 BURN_MSI_PROPERTY_MODIFY, // add BURNMSIMODIFY=1
347 BURN_MSI_PROPERTY_REPAIR, // add BURNMSIREPAIR=1
348 BURN_MSI_PROPERTY_UNINSTALL,// add BURNMSIUNINSTALL=1
349};
350
351struct BOOTSTRAPPER_COMMAND
352{
353 DWORD cbSize;
354 BOOTSTRAPPER_ACTION action;
355 BOOTSTRAPPER_DISPLAY display;
356
357 LPWSTR wzCommandLine;
358 INT32 nCmdShow;
359
360 BOOTSTRAPPER_RESUME_TYPE resumeType;
361 HWND hwndSplashScreen;
362
363 // If this was run from a related bundle, specifies the relation type
364 BOOTSTRAPPER_RELATION_TYPE relationType;
365 BOOL fPassthrough;
366
367 LPWSTR wzLayoutDirectory;
368 LPWSTR wzBootstrapperWorkingFolder;
369 LPWSTR wzBootstrapperApplicationDataPath;
370};
371
372struct BA_ONAPPLYBEGIN_ARGS
373{
374 DWORD dwApiVersion;
375 DWORD dwPhaseCount;
376};
377
378struct BA_ONAPPLYBEGIN_RESULTS
379{
380 DWORD dwApiVersion;
381 BOOL fCancel;
382};
383
384struct BA_ONAPPLYCOMPLETE_ARGS
385{
386 DWORD dwApiVersion;
387 HRESULT hrStatus;
388 // Indicates whether any package required a reboot or initiated the reboot already.
389 BOOTSTRAPPER_APPLY_RESTART restart;
390 BOOTSTRAPPER_APPLYCOMPLETE_ACTION recommendation;
391};
392
393struct BA_ONAPPLYCOMPLETE_RESULTS
394{
395 DWORD dwApiVersion;
396 BOOTSTRAPPER_APPLYCOMPLETE_ACTION action;
397};
398
399struct BA_ONAPPLYDOWNGRADE_ARGS
400{
401 DWORD dwApiVersion;
402 HRESULT hrRecommended;
403};
404
405struct BA_ONAPPLYDOWNGRADE_RESULTS
406{
407 DWORD dwApiVersion;
408 HRESULT hrStatus;
409};
410
411struct BA_ONBEGINMSITRANSACTIONBEGIN_ARGS
412{
413 DWORD dwApiVersion;
414 LPCWSTR wzTransactionId;
415};
416
417struct BA_ONBEGINMSITRANSACTIONBEGIN_RESULTS
418{
419 DWORD dwApiVersion;
420 BOOL fCancel;
421};
422
423struct BA_ONBEGINMSITRANSACTIONCOMPLETE_ARGS
424{
425 DWORD dwApiVersion;
426 LPCWSTR wzTransactionId;
427 HRESULT hrStatus;
428};
429
430struct BA_ONBEGINMSITRANSACTIONCOMPLETE_RESULTS
431{
432 DWORD dwApiVersion;
433};
434
435struct BA_ONCACHEACQUIREBEGIN_ARGS
436{
437 DWORD dwApiVersion;
438 LPCWSTR wzPackageOrContainerId;
439 LPCWSTR wzPayloadId;
440 LPCWSTR wzSource;
441 LPCWSTR wzDownloadUrl;
442 LPCWSTR wzPayloadContainerId;
443 BOOTSTRAPPER_CACHE_OPERATION recommendation;
444};
445
446struct BA_ONCACHEACQUIREBEGIN_RESULTS
447{
448 DWORD dwApiVersion;
449 BOOL fCancel;
450 BOOTSTRAPPER_CACHE_OPERATION action;
451};
452
453struct BA_ONCACHEACQUIRECOMPLETE_ARGS
454{
455 DWORD dwApiVersion;
456 LPCWSTR wzPackageOrContainerId;
457 LPCWSTR wzPayloadId;
458 HRESULT hrStatus;
459 BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION recommendation;
460};
461
462struct BA_ONCACHEACQUIRECOMPLETE_RESULTS
463{
464 DWORD dwApiVersion;
465 BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION action;
466};
467
468struct BA_ONCACHEACQUIREPROGRESS_ARGS
469{
470 DWORD dwApiVersion;
471 LPCWSTR wzPackageOrContainerId;
472 LPCWSTR wzPayloadId;
473 DWORD64 dw64Progress;
474 DWORD64 dw64Total;
475 DWORD dwOverallPercentage;
476};
477
478struct BA_ONCACHEACQUIREPROGRESS_RESULTS
479{
480 DWORD dwApiVersion;
481 BOOL fCancel;
482};
483
484struct BA_ONCACHEACQUIRERESOLVING_ARGS
485{
486 DWORD dwApiVersion;
487 LPCWSTR wzPackageOrContainerId;
488 LPCWSTR wzPayloadId;
489 LPCWSTR* rgSearchPaths;
490 DWORD cSearchPaths;
491 BOOL fFoundLocal;
492 DWORD dwRecommendedSearchPath;
493 LPCWSTR wzDownloadUrl;
494 LPCWSTR wzPayloadContainerId;
495 BOOTSTRAPPER_CACHE_RESOLVE_OPERATION recommendation;
496};
497
498struct BA_ONCACHEACQUIRERESOLVING_RESULTS
499{
500 DWORD dwApiVersion;
501 DWORD dwChosenSearchPath;
502 BOOTSTRAPPER_CACHE_RESOLVE_OPERATION action;
503 BOOL fCancel;
504};
505
506struct BA_ONCACHEBEGIN_ARGS
507{
508 DWORD dwApiVersion;
509};
510
511struct BA_ONCACHEBEGIN_RESULTS
512{
513 DWORD dwApiVersion;
514 BOOL fCancel;
515};
516
517struct BA_ONCACHECOMPLETE_ARGS
518{
519 DWORD dwApiVersion;
520 HRESULT hrStatus;
521};
522
523struct BA_ONCACHECOMPLETE_RESULTS
524{
525 DWORD dwApiVersion;
526};
527
528struct BA_ONCACHECONTAINERORPAYLOADVERIFYBEGIN_ARGS
529{
530 DWORD dwApiVersion;
531 LPCWSTR wzPackageOrContainerId;
532 LPCWSTR wzPayloadId;
533};
534
535struct BA_ONCACHECONTAINERORPAYLOADVERIFYBEGIN_RESULTS
536{
537 DWORD dwApiVersion;
538 BOOL fCancel;
539};
540
541struct BA_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE_ARGS
542{
543 DWORD dwApiVersion;
544 LPCWSTR wzPackageOrContainerId;
545 LPCWSTR wzPayloadId;
546 HRESULT hrStatus;
547};
548
549struct BA_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE_RESULTS
550{
551 DWORD dwApiVersion;
552};
553
554struct BA_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS_ARGS
555{
556 DWORD dwApiVersion;
557 LPCWSTR wzPackageOrContainerId;
558 LPCWSTR wzPayloadId;
559 DWORD64 dw64Progress;
560 DWORD64 dw64Total;
561 DWORD dwOverallPercentage;
562};
563
564struct BA_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS_RESULTS
565{
566 DWORD dwApiVersion;
567 BOOL fCancel;
568};
569
570struct BA_ONCACHEPACKAGEBEGIN_ARGS
571{
572 DWORD dwApiVersion;
573 LPCWSTR wzPackageId;
574 DWORD cCachePayloads;
575 DWORD64 dw64PackageCacheSize;
576 // If caching a package is not vital, then acquisition will be skipped unless the BA opts in through OnCachePackageNonVitalValidationFailure.
577 BOOL fVital;
578};
579
580struct BA_ONCACHEPACKAGEBEGIN_RESULTS
581{
582 DWORD dwApiVersion;
583 BOOL fCancel;
584};
585
586struct BA_ONCACHEPACKAGECOMPLETE_ARGS
587{
588 DWORD dwApiVersion;
589 LPCWSTR wzPackageId;
590 HRESULT hrStatus;
591 BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION recommendation;
592};
593
594struct BA_ONCACHEPACKAGECOMPLETE_RESULTS
595{
596 DWORD dwApiVersion;
597 BOOTSTRAPPER_CACHEPACKAGECOMPLETE_ACTION action;
598};
599
600struct BA_ONCACHEPACKAGENONVITALVALIDATIONFAILURE_ARGS
601{
602 DWORD dwApiVersion;
603 LPCWSTR wzPackageId;
604 HRESULT hrStatus;
605 BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION recommendation;
606};
607
608struct BA_ONCACHEPACKAGENONVITALVALIDATIONFAILURE_RESULTS
609{
610 DWORD dwApiVersion;
611 BOOTSTRAPPER_CACHEPACKAGENONVITALVALIDATIONFAILURE_ACTION action;
612};
613
614struct BA_ONCACHEPAYLOADEXTRACTBEGIN_ARGS
615{
616 DWORD dwApiVersion;
617 LPCWSTR wzContainerId;
618 LPCWSTR wzPayloadId;
619};
620
621struct BA_ONCACHEPAYLOADEXTRACTBEGIN_RESULTS
622{
623 DWORD dwApiVersion;
624 BOOL fCancel;
625};
626
627struct BA_ONCACHEPAYLOADEXTRACTCOMPLETE_ARGS
628{
629 DWORD dwApiVersion;
630 LPCWSTR wzContainerId;
631 LPCWSTR wzPayloadId;
632 HRESULT hrStatus;
633};
634
635struct BA_ONCACHEPAYLOADEXTRACTCOMPLETE_RESULTS
636{
637 DWORD dwApiVersion;
638};
639
640struct BA_ONCACHEPAYLOADEXTRACTPROGRESS_ARGS
641{
642 DWORD dwApiVersion;
643 LPCWSTR wzContainerId;
644 LPCWSTR wzPayloadId;
645 DWORD64 dw64Progress;
646 DWORD64 dw64Total;
647 DWORD dwOverallPercentage;
648};
649
650struct BA_ONCACHEPAYLOADEXTRACTPROGRESS_RESULTS
651{
652 DWORD dwApiVersion;
653 BOOL fCancel;
654};
655
656struct BA_ONCACHEVERIFYBEGIN_ARGS
657{
658 DWORD dwApiVersion;
659 LPCWSTR wzPackageOrContainerId;
660 LPCWSTR wzPayloadId;
661};
662
663struct BA_ONCACHEVERIFYBEGIN_RESULTS
664{
665 DWORD dwApiVersion;
666 BOOL fCancel;
667};
668
669struct BA_ONCACHEVERIFYCOMPLETE_ARGS
670{
671 DWORD dwApiVersion;
672 LPCWSTR wzPackageOrContainerId;
673 LPCWSTR wzPayloadId;
674 HRESULT hrStatus;
675 BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION recommendation;
676};
677
678struct BA_ONCACHEVERIFYCOMPLETE_RESULTS
679{
680 DWORD dwApiVersion;
681 BOOTSTRAPPER_CACHEVERIFYCOMPLETE_ACTION action;
682};
683
684struct BA_ONCACHEVERIFYPROGRESS_ARGS
685{
686 DWORD dwApiVersion;
687 LPCWSTR wzPackageOrContainerId;
688 LPCWSTR wzPayloadId;
689 DWORD64 dw64Progress;
690 DWORD64 dw64Total;
691 DWORD dwOverallPercentage;
692 BOOTSTRAPPER_CACHE_VERIFY_STEP verifyStep;
693};
694
695struct BA_ONCACHEVERIFYPROGRESS_RESULTS
696{
697 DWORD dwApiVersion;
698 BOOL fCancel;
699};
700
701struct BA_ONCOMMITMSITRANSACTIONBEGIN_ARGS
702{
703 DWORD dwApiVersion;
704 LPCWSTR wzTransactionId;
705};
706
707struct BA_ONCOMMITMSITRANSACTIONBEGIN_RESULTS
708{
709 DWORD dwApiVersion;
710 BOOL fCancel;
711};
712
713struct BA_ONCOMMITMSITRANSACTIONCOMPLETE_ARGS
714{
715 DWORD dwApiVersion;
716 LPCWSTR wzTransactionId;
717 HRESULT hrStatus;
718 BOOTSTRAPPER_APPLY_RESTART restart;
719 BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION recommendation;
720};
721
722struct BA_ONCOMMITMSITRANSACTIONCOMPLETE_RESULTS
723{
724 DWORD dwApiVersion;
725 BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION action;
726};
727
728struct BA_ONCREATE_ARGS
729{
730 DWORD dwApiVersion;
731 BOOTSTRAPPER_COMMAND command;
732};
733
734struct BA_ONCREATE_RESULTS
735{
736 DWORD dwApiVersion;
737};
738
739struct BA_ONDESTROY_ARGS
740{
741 DWORD dwApiVersion;
742 BOOL fReload;
743};
744
745struct BA_ONDESTROY_RESULTS
746{
747 DWORD dwApiVersion;
748};
749
750struct BA_ONDETECTBEGIN_ARGS
751{
752 DWORD dwApiVersion;
753 BOOTSTRAPPER_REGISTRATION_TYPE registrationType;
754 DWORD cPackages;
755 BOOL fCached;
756};
757
758struct BA_ONDETECTBEGIN_RESULTS
759{
760 DWORD dwApiVersion;
761 BOOL fCancel;
762};
763
764struct BA_ONDETECTCOMPATIBLEMSIPACKAGE_ARGS
765{
766 DWORD dwApiVersion;
767 LPCWSTR wzPackageId;
768 LPCWSTR wzCompatiblePackageId;
769 LPCWSTR wzCompatiblePackageVersion;
770};
771
772struct BA_ONDETECTCOMPATIBLEMSIPACKAGE_RESULTS
773{
774 DWORD dwApiVersion;
775 BOOL fCancel;
776};
777
778struct BA_ONDETECTCOMPLETE_ARGS
779{
780 DWORD dwApiVersion;
781 HRESULT hrStatus;
782 BOOL fEligibleForCleanup;
783};
784
785struct BA_ONDETECTCOMPLETE_RESULTS
786{
787 DWORD dwApiVersion;
788};
789
790struct BA_ONDETECTFORWARDCOMPATIBLEBUNDLE_ARGS
791{
792 DWORD dwApiVersion;
793 LPCWSTR wzBundleId;
794 BOOTSTRAPPER_RELATION_TYPE relationType;
795 LPCWSTR wzBundleTag;
796 BOOL fPerMachine;
797 LPCWSTR wzVersion;
798 BOOL fMissingFromCache;
799};
800
801struct BA_ONDETECTFORWARDCOMPATIBLEBUNDLE_RESULTS
802{
803 DWORD dwApiVersion;
804 BOOL fCancel;
805};
806
807struct BA_ONDETECTMSIFEATURE_ARGS
808{
809 DWORD dwApiVersion;
810 LPCWSTR wzPackageId;
811 LPCWSTR wzFeatureId;
812 BOOTSTRAPPER_FEATURE_STATE state;
813};
814
815struct BA_ONDETECTMSIFEATURE_RESULTS
816{
817 DWORD dwApiVersion;
818 BOOL fCancel;
819};
820
821struct BA_ONDETECTPACKAGEBEGIN_ARGS
822{
823 DWORD dwApiVersion;
824 LPCWSTR wzPackageId;
825};
826
827struct BA_ONDETECTPACKAGEBEGIN_RESULTS
828{
829 DWORD dwApiVersion;
830 BOOL fCancel;
831};
832
833struct BA_ONDETECTPACKAGECOMPLETE_ARGS
834{
835 DWORD dwApiVersion;
836 LPCWSTR wzPackageId;
837 HRESULT hrStatus;
838 BOOTSTRAPPER_PACKAGE_STATE state;
839 BOOL fCached;
840};
841
842struct BA_ONDETECTPACKAGECOMPLETE_RESULTS
843{
844 DWORD dwApiVersion;
845};
846
847struct BA_ONDETECTRELATEDBUNDLE_ARGS
848{
849 DWORD dwApiVersion;
850 LPCWSTR wzBundleId;
851 BOOTSTRAPPER_RELATION_TYPE relationType;
852 LPCWSTR wzBundleTag;
853 BOOL fPerMachine;
854 LPCWSTR wzVersion;
855 BOOL fMissingFromCache;
856};
857
858struct BA_ONDETECTRELATEDBUNDLE_RESULTS
859{
860 DWORD dwApiVersion;
861 BOOL fCancel;
862};
863
864struct BA_ONDETECTRELATEDBUNDLEPACKAGE_ARGS
865{
866 DWORD dwApiVersion;
867 LPCWSTR wzPackageId;
868 LPCWSTR wzBundleId;
869 BOOTSTRAPPER_RELATION_TYPE relationType;
870 BOOL fPerMachine;
871 LPCWSTR wzVersion;
872};
873
874struct BA_ONDETECTRELATEDBUNDLEPACKAGE_RESULTS
875{
876 DWORD dwApiVersion;
877 BOOL fCancel;
878};
879
880struct BA_ONDETECTRELATEDMSIPACKAGE_ARGS
881{
882 DWORD dwApiVersion;
883 LPCWSTR wzPackageId;
884 LPCWSTR wzUpgradeCode;
885 LPCWSTR wzProductCode;
886 BOOL fPerMachine;
887 LPCWSTR wzVersion;
888 BOOTSTRAPPER_RELATED_OPERATION operation;
889};
890
891struct BA_ONDETECTRELATEDMSIPACKAGE_RESULTS
892{
893 DWORD dwApiVersion;
894 BOOL fCancel;
895};
896
897struct BA_ONDETECTPATCHTARGET_ARGS
898{
899 DWORD dwApiVersion;
900 LPCWSTR wzPackageId;
901 LPCWSTR wzProductCode;
902 BOOTSTRAPPER_PACKAGE_STATE patchState;
903};
904
905struct BA_ONDETECTPATCHTARGET_RESULTS
906{
907 DWORD dwApiVersion;
908 BOOL fCancel;
909};
910
911struct BA_ONDETECTUPDATE_ARGS
912{
913 DWORD dwApiVersion;
914 LPCWSTR wzUpdateLocation;
915 DWORD64 dw64Size;
916 LPCWSTR wzHash;
917 BOOTSTRAPPER_UPDATE_HASH_TYPE hashAlgorithm;
918 LPCWSTR wzVersion;
919 LPCWSTR wzTitle;
920 LPCWSTR wzSummary;
921 LPCWSTR wzContentType;
922 LPCWSTR wzContent;
923};
924
925struct BA_ONDETECTUPDATE_RESULTS
926{
927 DWORD dwApiVersion;
928 BOOL fCancel;
929 BOOL fStopProcessingUpdates;
930};
931
932struct BA_ONDETECTUPDATEBEGIN_ARGS
933{
934 DWORD dwApiVersion;
935 LPCWSTR wzUpdateLocation;
936};
937
938struct BA_ONDETECTUPDATEBEGIN_RESULTS
939{
940 DWORD dwApiVersion;
941 BOOL fCancel;
942 BOOL fSkip;
943};
944
945struct BA_ONDETECTUPDATECOMPLETE_ARGS
946{
947 DWORD dwApiVersion;
948 HRESULT hrStatus;
949};
950
951struct BA_ONDETECTUPDATECOMPLETE_RESULTS
952{
953 DWORD dwApiVersion;
954 BOOL fIgnoreError;
955};
956
957struct BA_ONELEVATEBEGIN_ARGS
958{
959 DWORD dwApiVersion;
960};
961
962struct BA_ONELEVATEBEGIN_RESULTS
963{
964 DWORD dwApiVersion;
965 BOOL fCancel;
966};
967
968struct BA_ONELEVATECOMPLETE_ARGS
969{
970 DWORD dwApiVersion;
971 HRESULT hrStatus;
972};
973
974struct BA_ONELEVATECOMPLETE_RESULTS
975{
976 DWORD dwApiVersion;
977};
978
979struct BA_ONERROR_ARGS
980{
981 DWORD dwApiVersion;
982 BOOTSTRAPPER_ERROR_TYPE errorType;
983 LPCWSTR wzPackageId;
984 DWORD dwCode;
985 LPCWSTR wzError;
986 DWORD dwUIHint;
987 DWORD cData;
988 LPCWSTR* rgwzData;
989 INT32 nRecommendation;
990};
991
992struct BA_ONERROR_RESULTS
993{
994 DWORD dwApiVersion;
995 INT32 nResult;
996};
997
998struct BA_ONEXECUTEBEGIN_ARGS
999{
1000 DWORD dwApiVersion;
1001 DWORD cExecutingPackages;
1002};
1003
1004struct BA_ONEXECUTEBEGIN_RESULTS
1005{
1006 DWORD dwApiVersion;
1007 BOOL fCancel;
1008};
1009
1010struct BA_ONEXECUTECOMPLETE_ARGS
1011{
1012 DWORD dwApiVersion;
1013 HRESULT hrStatus;
1014};
1015
1016struct BA_ONEXECUTECOMPLETE_RESULTS
1017{
1018 DWORD dwApiVersion;
1019};
1020
1021struct BA_ONEXECUTEFILESINUSE_ARGS
1022{
1023 DWORD dwApiVersion;
1024 LPCWSTR wzPackageId;
1025 DWORD cFiles;
1026 LPCWSTR* rgwzFiles;
1027 INT32 nRecommendation;
1028 BOOTSTRAPPER_FILES_IN_USE_TYPE source;
1029};
1030
1031struct BA_ONEXECUTEFILESINUSE_RESULTS
1032{
1033 DWORD dwApiVersion;
1034 INT32 nResult;
1035};
1036
1037struct BA_ONEXECUTEMSIMESSAGE_ARGS
1038{
1039 DWORD dwApiVersion;
1040 LPCWSTR wzPackageId;
1041 INSTALLMESSAGE messageType;
1042 DWORD dwUIHint;
1043 LPCWSTR wzMessage;
1044 DWORD cData;
1045 LPCWSTR* rgwzData;
1046 INT32 nRecommendation;
1047};
1048
1049struct BA_ONEXECUTEMSIMESSAGE_RESULTS
1050{
1051 DWORD dwApiVersion;
1052 INT32 nResult;
1053};
1054
1055struct BA_ONEXECUTEPACKAGEBEGIN_ARGS
1056{
1057 DWORD dwApiVersion;
1058 LPCWSTR wzPackageId;
1059 BOOL fExecute; // false means rollback.
1060 BOOTSTRAPPER_ACTION_STATE action;
1061 INSTALLUILEVEL uiLevel;
1062 BOOL fDisableExternalUiHandler;
1063};
1064
1065struct BA_ONEXECUTEPACKAGEBEGIN_RESULTS
1066{
1067 DWORD dwApiVersion;
1068 BOOL fCancel;
1069};
1070
1071struct BA_ONEXECUTEPACKAGECOMPLETE_ARGS
1072{
1073 DWORD dwApiVersion;
1074 LPCWSTR wzPackageId;
1075 HRESULT hrStatus;
1076 // Indicates whether this package requires a reboot or initiated the reboot already.
1077 BOOTSTRAPPER_APPLY_RESTART restart;
1078 BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION recommendation;
1079};
1080
1081struct BA_ONEXECUTEPACKAGECOMPLETE_RESULTS
1082{
1083 DWORD dwApiVersion;
1084 BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION action;
1085};
1086
1087struct BA_ONEXECUTEPATCHTARGET_ARGS
1088{
1089 DWORD dwApiVersion;
1090 LPCWSTR wzPackageId;
1091 LPCWSTR wzTargetProductCode;
1092};
1093
1094struct BA_ONEXECUTEPATCHTARGET_RESULTS
1095{
1096 DWORD dwApiVersion;
1097 BOOL fCancel;
1098};
1099
1100struct BA_ONEXECUTEPROCESSCANCEL_ARGS
1101{
1102 DWORD dwApiVersion;
1103 LPCWSTR wzPackageId;
1104 DWORD dwProcessId;
1105 BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION recommendation;
1106};
1107
1108struct BA_ONEXECUTEPROCESSCANCEL_RESULTS
1109{
1110 DWORD dwApiVersion;
1111 BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION action;
1112};
1113
1114struct BA_ONEXECUTEPROGRESS_ARGS
1115{
1116 DWORD dwApiVersion;
1117 LPCWSTR wzPackageId;
1118 DWORD dwProgressPercentage;
1119 DWORD dwOverallPercentage;
1120};
1121
1122struct BA_ONEXECUTEPROGRESS_RESULTS
1123{
1124 DWORD dwApiVersion;
1125 BOOL fCancel;
1126};
1127
1128struct BA_ONLAUNCHAPPROVEDEXEBEGIN_ARGS
1129{
1130 DWORD dwApiVersion;
1131};
1132
1133struct BA_ONLAUNCHAPPROVEDEXEBEGIN_RESULTS
1134{
1135 DWORD dwApiVersion;
1136 BOOL fCancel;
1137};
1138
1139struct BA_ONLAUNCHAPPROVEDEXECOMPLETE_ARGS
1140{
1141 DWORD dwApiVersion;
1142 HRESULT hrStatus;
1143 // Only valid if the operation succeeded.
1144 DWORD dwProcessId;
1145};
1146
1147struct BA_ONLAUNCHAPPROVEDEXECOMPLETE_RESULTS
1148{
1149 DWORD dwApiVersion;
1150};
1151
1152struct BA_ONPAUSEAUTOMATICUPDATESBEGIN_ARGS
1153{
1154 DWORD dwApiVersion;
1155};
1156
1157struct BA_ONPAUSEAUTOMATICUPDATESBEGIN_RESULTS
1158{
1159 DWORD dwApiVersion;
1160};
1161
1162struct BA_ONPAUSEAUTOMATICUPDATESCOMPLETE_ARGS
1163{
1164 DWORD dwApiVersion;
1165 HRESULT hrStatus;
1166};
1167
1168struct BA_ONPAUSEAUTOMATICUPDATESCOMPLETE_RESULTS
1169{
1170 DWORD dwApiVersion;
1171};
1172
1173struct BA_ONPLANBEGIN_ARGS
1174{
1175 DWORD dwApiVersion;
1176 DWORD cPackages;
1177};
1178
1179struct BA_ONPLANBEGIN_RESULTS
1180{
1181 DWORD dwApiVersion;
1182 BOOL fCancel;
1183};
1184
1185struct BA_ONPLANCOMPATIBLEMSIPACKAGEBEGIN_ARGS
1186{
1187 DWORD dwApiVersion;
1188 LPCWSTR wzPackageId;
1189 LPCWSTR wzCompatiblePackageId;
1190 LPCWSTR wzCompatiblePackageVersion;
1191 BOOL fRecommendedRemove;
1192};
1193
1194struct BA_ONPLANCOMPATIBLEMSIPACKAGEBEGIN_RESULTS
1195{
1196 DWORD dwApiVersion;
1197 BOOL fCancel;
1198 BOOL fRequestRemove;
1199};
1200
1201struct BA_ONPLANCOMPATIBLEMSIPACKAGECOMPLETE_ARGS
1202{
1203 DWORD dwApiVersion;
1204 LPCWSTR wzPackageId;
1205 LPCWSTR wzCompatiblePackageId;
1206 HRESULT hrStatus;
1207 BOOL fRequestedRemove;
1208};
1209
1210struct BA_ONPLANCOMPATIBLEMSIPACKAGECOMPLETE_RESULTS
1211{
1212 DWORD dwApiVersion;
1213};
1214
1215struct BA_ONPLANCOMPLETE_ARGS
1216{
1217 DWORD dwApiVersion;
1218 HRESULT hrStatus;
1219};
1220
1221struct BA_ONPLANCOMPLETE_RESULTS
1222{
1223 DWORD dwApiVersion;
1224};
1225
1226struct BA_ONPLANFORWARDCOMPATIBLEBUNDLE_ARGS
1227{
1228 DWORD dwApiVersion;
1229 LPCWSTR wzBundleId;
1230 BOOTSTRAPPER_RELATION_TYPE relationType;
1231 LPCWSTR wzBundleTag;
1232 BOOL fPerMachine;
1233 LPCWSTR wzVersion;
1234 BOOL fRecommendedIgnoreBundle;
1235};
1236
1237struct BA_ONPLANFORWARDCOMPATIBLEBUNDLE_RESULTS
1238{
1239 DWORD dwApiVersion;
1240 BOOL fCancel;
1241 BOOL fIgnoreBundle;
1242};
1243
1244struct BA_ONPLANMSIFEATURE_ARGS
1245{
1246 DWORD dwApiVersion;
1247 LPCWSTR wzPackageId;
1248 LPCWSTR wzFeatureId;
1249 BOOTSTRAPPER_FEATURE_STATE recommendedState;
1250};
1251
1252struct BA_ONPLANMSIFEATURE_RESULTS
1253{
1254 DWORD dwApiVersion;
1255 BOOTSTRAPPER_FEATURE_STATE requestedState;
1256 BOOL fCancel;
1257};
1258
1259struct BA_ONPLANMSIPACKAGE_ARGS
1260{
1261 DWORD dwApiVersion;
1262 LPCWSTR wzPackageId;
1263 BOOL fExecute; // false means rollback.
1264 BOOTSTRAPPER_ACTION_STATE action;
1265 BOOTSTRAPPER_MSI_FILE_VERSIONING recommendedFileVersioning;
1266};
1267
1268struct BA_ONPLANMSIPACKAGE_RESULTS
1269{
1270 DWORD dwApiVersion;
1271 BOOL fCancel;
1272 BURN_MSI_PROPERTY actionMsiProperty;
1273 INSTALLUILEVEL uiLevel;
1274 BOOL fDisableExternalUiHandler;
1275 BOOTSTRAPPER_MSI_FILE_VERSIONING fileVersioning;
1276};
1277
1278struct BA_ONPLANNEDCOMPATIBLEPACKAGE_ARGS
1279{
1280 DWORD dwApiVersion;
1281 LPCWSTR wzPackageId;
1282 LPCWSTR wzCompatiblePackageId;
1283 BOOL fRemove;
1284};
1285
1286struct BA_ONPLANNEDCOMPATIBLEPACKAGE_RESULTS
1287{
1288 DWORD dwApiVersion;
1289};
1290
1291struct BA_ONPLANNEDPACKAGE_ARGS
1292{
1293 DWORD dwApiVersion;
1294 LPCWSTR wzPackageId;
1295 BOOTSTRAPPER_ACTION_STATE execute;
1296 BOOTSTRAPPER_ACTION_STATE rollback;
1297 BOOL fPlannedCache;
1298 BOOL fPlannedUncache;
1299};
1300
1301struct BA_ONPLANNEDPACKAGE_RESULTS
1302{
1303 DWORD dwApiVersion;
1304};
1305
1306struct BA_ONPLANPACKAGEBEGIN_ARGS
1307{
1308 DWORD dwApiVersion;
1309 LPCWSTR wzPackageId;
1310 BOOTSTRAPPER_PACKAGE_STATE state;
1311 BOOL fCached;
1312 BOOTSTRAPPER_PACKAGE_CONDITION_RESULT installCondition;
1313 BOOTSTRAPPER_REQUEST_STATE recommendedState;
1314 BOOTSTRAPPER_CACHE_TYPE recommendedCacheType;
1315 BOOTSTRAPPER_PACKAGE_CONDITION_RESULT repairCondition;
1316};
1317
1318struct BA_ONPLANPACKAGEBEGIN_RESULTS
1319{
1320 DWORD dwApiVersion;
1321 BOOL fCancel;
1322 BOOTSTRAPPER_REQUEST_STATE requestedState;
1323 BOOTSTRAPPER_CACHE_TYPE requestedCacheType;
1324};
1325
1326struct BA_ONPLANPACKAGECOMPLETE_ARGS
1327{
1328 DWORD dwApiVersion;
1329 LPCWSTR wzPackageId;
1330 HRESULT hrStatus;
1331 BOOTSTRAPPER_REQUEST_STATE requested;
1332};
1333
1334struct BA_ONPLANPACKAGECOMPLETE_RESULTS
1335{
1336 DWORD dwApiVersion;
1337};
1338
1339struct BA_ONPLANRELATEDBUNDLE_ARGS
1340{
1341 DWORD dwApiVersion;
1342 LPCWSTR wzBundleId;
1343 BOOTSTRAPPER_REQUEST_STATE recommendedState;
1344};
1345
1346struct BA_ONPLANRELATEDBUNDLE_RESULTS
1347{
1348 DWORD dwApiVersion;
1349 BOOL fCancel;
1350 BOOTSTRAPPER_REQUEST_STATE requestedState;
1351};
1352
1353struct BA_ONPLANRELATEDBUNDLETYPE_ARGS
1354{
1355 DWORD dwApiVersion;
1356 LPCWSTR wzBundleId;
1357 BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE recommendedType;
1358};
1359
1360struct BA_ONPLANRELATEDBUNDLETYPE_RESULTS
1361{
1362 DWORD dwApiVersion;
1363 BOOL fCancel;
1364 BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE requestedType;
1365};
1366
1367struct BA_ONPLANRESTORERELATEDBUNDLE_ARGS
1368{
1369 DWORD dwApiVersion;
1370 LPCWSTR wzBundleId;
1371 BOOTSTRAPPER_REQUEST_STATE recommendedState;
1372};
1373
1374struct BA_ONPLANRESTORERELATEDBUNDLE_RESULTS
1375{
1376 DWORD dwApiVersion;
1377 BOOL fCancel;
1378 BOOTSTRAPPER_REQUEST_STATE requestedState;
1379};
1380
1381struct BA_ONPLANROLLBACKBOUNDARY_ARGS
1382{
1383 DWORD dwApiVersion;
1384 LPCWSTR wzRollbackBoundaryId;
1385 BOOL fRecommendedTransaction;
1386};
1387
1388struct BA_ONPLANROLLBACKBOUNDARY_RESULTS
1389{
1390 DWORD dwApiVersion;
1391 BOOL fTransaction;
1392 BOOL fCancel;
1393};
1394
1395struct BA_ONPLANPATCHTARGET_ARGS
1396{
1397 DWORD dwApiVersion;
1398 LPCWSTR wzPackageId;
1399 LPCWSTR wzProductCode;
1400 BOOTSTRAPPER_REQUEST_STATE recommendedState;
1401};
1402
1403struct BA_ONPLANPATCHTARGET_RESULTS
1404{
1405 DWORD dwApiVersion;
1406 BOOL fCancel;
1407 BOOTSTRAPPER_REQUEST_STATE requestedState;
1408};
1409
1410struct BA_ONPROGRESS_ARGS
1411{
1412 DWORD dwApiVersion;
1413 DWORD dwProgressPercentage;
1414 DWORD dwOverallPercentage;
1415};
1416
1417struct BA_ONPROGRESS_RESULTS
1418{
1419 DWORD dwApiVersion;
1420 BOOL fCancel;
1421};
1422
1423struct BA_ONREGISTERBEGIN_ARGS
1424{
1425 DWORD dwApiVersion;
1426 BOOTSTRAPPER_REGISTRATION_TYPE recommendedRegistrationType;
1427};
1428
1429struct BA_ONREGISTERBEGIN_RESULTS
1430{
1431 DWORD dwApiVersion;
1432 BOOL fCancel;
1433 BOOTSTRAPPER_REGISTRATION_TYPE registrationType;
1434};
1435
1436struct BA_ONREGISTERCOMPLETE_ARGS
1437{
1438 DWORD dwApiVersion;
1439 HRESULT hrStatus;
1440};
1441
1442struct BA_ONREGISTERCOMPLETE_RESULTS
1443{
1444 DWORD dwApiVersion;
1445};
1446
1447struct BA_ONROLLBACKMSITRANSACTIONBEGIN_ARGS
1448{
1449 DWORD dwApiVersion;
1450 LPCWSTR wzTransactionId;
1451};
1452
1453struct BA_ONROLLBACKMSITRANSACTIONBEGIN_RESULTS
1454{
1455 DWORD dwApiVersion;
1456};
1457
1458struct BA_ONROLLBACKMSITRANSACTIONCOMPLETE_ARGS
1459{
1460 DWORD dwApiVersion;
1461 LPCWSTR wzTransactionId;
1462 HRESULT hrStatus;
1463 BOOTSTRAPPER_APPLY_RESTART restart;
1464 BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION recommendation;
1465};
1466
1467struct BA_ONROLLBACKMSITRANSACTIONCOMPLETE_RESULTS
1468{
1469 DWORD dwApiVersion;
1470 BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION action;
1471};
1472
1473struct BA_ONSHUTDOWN_ARGS
1474{
1475 DWORD dwApiVersion;
1476};
1477
1478struct BA_ONSHUTDOWN_RESULTS
1479{
1480 DWORD dwApiVersion;
1481 BOOTSTRAPPER_SHUTDOWN_ACTION action;
1482};
1483
1484struct BA_ONSTARTUP_ARGS
1485{
1486 DWORD dwApiVersion;
1487};
1488
1489struct BA_ONSTARTUP_RESULTS
1490{
1491 DWORD dwApiVersion;
1492};
1493
1494struct BA_ONSYSTEMRESTOREPOINTBEGIN_ARGS
1495{
1496 DWORD dwApiVersion;
1497};
1498
1499struct BA_ONSYSTEMRESTOREPOINTBEGIN_RESULTS
1500{
1501 DWORD dwApiVersion;
1502};
1503
1504struct BA_ONSYSTEMRESTOREPOINTCOMPLETE_ARGS
1505{
1506 DWORD dwApiVersion;
1507 HRESULT hrStatus;
1508};
1509
1510struct BA_ONSYSTEMRESTOREPOINTCOMPLETE_RESULTS
1511{
1512 DWORD dwApiVersion;
1513};
1514
1515struct BA_ONUNREGISTERBEGIN_ARGS
1516{
1517 DWORD dwApiVersion;
1518 BOOTSTRAPPER_REGISTRATION_TYPE recommendedRegistrationType;
1519};
1520
1521struct BA_ONUNREGISTERBEGIN_RESULTS
1522{
1523 DWORD dwApiVersion;
1524 BOOTSTRAPPER_REGISTRATION_TYPE registrationType;
1525};
1526
1527struct BA_ONUNREGISTERCOMPLETE_ARGS
1528{
1529 DWORD dwApiVersion;
1530 HRESULT hrStatus;
1531};
1532
1533struct BA_ONUNREGISTERCOMPLETE_RESULTS
1534{
1535 DWORD dwApiVersion;
1536};
1537
1538#ifdef TODO_DELETE
1539
1540extern "C" typedef HRESULT(WINAPI *PFN_BOOTSTRAPPER_APPLICATION_PROC)(
1541 __in BOOTSTRAPPER_APPLICATION_MESSAGE message,
1542 __in const LPVOID pvArgs,
1543 __inout LPVOID pvResults,
1544 __in_opt LPVOID pvContext
1545 );
1546
1547struct BOOTSTRAPPER_DESTROY_ARGS
1548{
1549 DWORD dwApiVersion;
1550 BOOL fReload;
1551};
1552
1553struct BOOTSTRAPPER_DESTROY_RESULTS
1554{
1555 DWORD dwApiVersion;
1556 BOOL fDisableUnloading; // indicates the BA dll must not be unloaded after BootstrapperApplicationDestroy.
1557};
1558
1559extern "C" typedef void (WINAPI *PFN_BOOTSTRAPPER_APPLICATION_DESTROY)(
1560 __in const BOOTSTRAPPER_DESTROY_ARGS* pArgs,
1561 __inout BOOTSTRAPPER_DESTROY_RESULTS* pResults
1562 );
1563
1564
1565
1566struct BOOTSTRAPPER_CREATE_ARGS
1567{
1568 DWORD dwApiVersion;
1569 DWORD64 qwEngineAPIVersion;
1570 PFN_BOOTSTRAPPER_ENGINE_PROC pfnBootstrapperEngineProc;
1571 LPVOID pvBootstrapperEngineProcContext;
1572 BOOTSTRAPPER_COMMAND* pCommand;
1573};
1574
1575struct BOOTSTRAPPER_CREATE_RESULTS
1576{
1577 DWORD dwApiVersion;
1578 PFN_BOOTSTRAPPER_APPLICATION_PROC pfnBootstrapperApplicationProc;
1579 LPVOID pvBootstrapperApplicationProcContext;
1580};
1581
1582extern "C" typedef HRESULT(WINAPI *PFN_BOOTSTRAPPER_APPLICATION_CREATE)(
1583 __in const BOOTSTRAPPER_CREATE_ARGS* pArgs,
1584 __inout BOOTSTRAPPER_CREATE_RESULTS* pResults
1585 );
1586
1587#endif
1588
1589#if defined(__cplusplus)
1590}
1591#endif