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.h1606
1 files changed, 1606 insertions, 0 deletions
diff --git a/src/api/burn/inc/BootstrapperApplication.h b/src/api/burn/inc/BootstrapperApplication.h
new file mode 100644
index 00000000..79b1df80
--- /dev/null
+++ b/src/api/burn/inc/BootstrapperApplication.h
@@ -0,0 +1,1606 @@
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 // BOOTSTRAPPER_ACTION action;
733 // BOOTSTRAPPER_DISPLAY display;
734
735 // LPWSTR wzCommandLine;
736 // INT32 nCmdShow;
737
738 // BOOTSTRAPPER_RESUME_TYPE resumeType;
739 // HWND hwndSplashScreen;
740
741 // BOOTSTRAPPER_RELATION_TYPE relationType;
742 // BOOL fPassthrough;
743
744 // LPWSTR wzLayoutDirectory;
745 // LPWSTR wzBootstrapperWorkingFolder;
746 // LPWSTR wzBootstrapperApplicationDataPath;
747};
748
749struct BA_ONCREATE_RESULTS
750{
751 DWORD dwApiVersion;
752};
753
754struct BA_ONDESTROY_ARGS
755{
756 DWORD dwApiVersion;
757 BOOL fReload;
758};
759
760struct BA_ONDESTROY_RESULTS
761{
762 DWORD dwApiVersion;
763};
764
765struct BA_ONDETECTBEGIN_ARGS
766{
767 DWORD dwApiVersion;
768 BOOTSTRAPPER_REGISTRATION_TYPE registrationType;
769 DWORD cPackages;
770 BOOL fCached;
771};
772
773struct BA_ONDETECTBEGIN_RESULTS
774{
775 DWORD dwApiVersion;
776 BOOL fCancel;
777};
778
779struct BA_ONDETECTCOMPATIBLEMSIPACKAGE_ARGS
780{
781 DWORD dwApiVersion;
782 LPCWSTR wzPackageId;
783 LPCWSTR wzCompatiblePackageId;
784 LPCWSTR wzCompatiblePackageVersion;
785};
786
787struct BA_ONDETECTCOMPATIBLEMSIPACKAGE_RESULTS
788{
789 DWORD dwApiVersion;
790 BOOL fCancel;
791};
792
793struct BA_ONDETECTCOMPLETE_ARGS
794{
795 DWORD dwApiVersion;
796 HRESULT hrStatus;
797 BOOL fEligibleForCleanup;
798};
799
800struct BA_ONDETECTCOMPLETE_RESULTS
801{
802 DWORD dwApiVersion;
803};
804
805struct BA_ONDETECTFORWARDCOMPATIBLEBUNDLE_ARGS
806{
807 DWORD dwApiVersion;
808 LPCWSTR wzBundleId;
809 BOOTSTRAPPER_RELATION_TYPE relationType;
810 LPCWSTR wzBundleTag;
811 BOOL fPerMachine;
812 LPCWSTR wzVersion;
813 BOOL fMissingFromCache;
814};
815
816struct BA_ONDETECTFORWARDCOMPATIBLEBUNDLE_RESULTS
817{
818 DWORD dwApiVersion;
819 BOOL fCancel;
820};
821
822struct BA_ONDETECTMSIFEATURE_ARGS
823{
824 DWORD dwApiVersion;
825 LPCWSTR wzPackageId;
826 LPCWSTR wzFeatureId;
827 BOOTSTRAPPER_FEATURE_STATE state;
828};
829
830struct BA_ONDETECTMSIFEATURE_RESULTS
831{
832 DWORD dwApiVersion;
833 BOOL fCancel;
834};
835
836struct BA_ONDETECTPACKAGEBEGIN_ARGS
837{
838 DWORD dwApiVersion;
839 LPCWSTR wzPackageId;
840};
841
842struct BA_ONDETECTPACKAGEBEGIN_RESULTS
843{
844 DWORD dwApiVersion;
845 BOOL fCancel;
846};
847
848struct BA_ONDETECTPACKAGECOMPLETE_ARGS
849{
850 DWORD dwApiVersion;
851 LPCWSTR wzPackageId;
852 HRESULT hrStatus;
853 BOOTSTRAPPER_PACKAGE_STATE state;
854 BOOL fCached;
855};
856
857struct BA_ONDETECTPACKAGECOMPLETE_RESULTS
858{
859 DWORD dwApiVersion;
860};
861
862struct BA_ONDETECTRELATEDBUNDLE_ARGS
863{
864 DWORD dwApiVersion;
865 LPCWSTR wzBundleId;
866 BOOTSTRAPPER_RELATION_TYPE relationType;
867 LPCWSTR wzBundleTag;
868 BOOL fPerMachine;
869 LPCWSTR wzVersion;
870 BOOL fMissingFromCache;
871};
872
873struct BA_ONDETECTRELATEDBUNDLE_RESULTS
874{
875 DWORD dwApiVersion;
876 BOOL fCancel;
877};
878
879struct BA_ONDETECTRELATEDBUNDLEPACKAGE_ARGS
880{
881 DWORD dwApiVersion;
882 LPCWSTR wzPackageId;
883 LPCWSTR wzBundleId;
884 BOOTSTRAPPER_RELATION_TYPE relationType;
885 BOOL fPerMachine;
886 LPCWSTR wzVersion;
887};
888
889struct BA_ONDETECTRELATEDBUNDLEPACKAGE_RESULTS
890{
891 DWORD dwApiVersion;
892 BOOL fCancel;
893};
894
895struct BA_ONDETECTRELATEDMSIPACKAGE_ARGS
896{
897 DWORD dwApiVersion;
898 LPCWSTR wzPackageId;
899 LPCWSTR wzUpgradeCode;
900 LPCWSTR wzProductCode;
901 BOOL fPerMachine;
902 LPCWSTR wzVersion;
903 BOOTSTRAPPER_RELATED_OPERATION operation;
904};
905
906struct BA_ONDETECTRELATEDMSIPACKAGE_RESULTS
907{
908 DWORD dwApiVersion;
909 BOOL fCancel;
910};
911
912struct BA_ONDETECTPATCHTARGET_ARGS
913{
914 DWORD dwApiVersion;
915 LPCWSTR wzPackageId;
916 LPCWSTR wzProductCode;
917 BOOTSTRAPPER_PACKAGE_STATE patchState;
918};
919
920struct BA_ONDETECTPATCHTARGET_RESULTS
921{
922 DWORD dwApiVersion;
923 BOOL fCancel;
924};
925
926struct BA_ONDETECTUPDATE_ARGS
927{
928 DWORD dwApiVersion;
929 LPCWSTR wzUpdateLocation;
930 DWORD64 dw64Size;
931 LPCWSTR wzHash;
932 BOOTSTRAPPER_UPDATE_HASH_TYPE hashAlgorithm;
933 LPCWSTR wzVersion;
934 LPCWSTR wzTitle;
935 LPCWSTR wzSummary;
936 LPCWSTR wzContentType;
937 LPCWSTR wzContent;
938};
939
940struct BA_ONDETECTUPDATE_RESULTS
941{
942 DWORD dwApiVersion;
943 BOOL fCancel;
944 BOOL fStopProcessingUpdates;
945};
946
947struct BA_ONDETECTUPDATEBEGIN_ARGS
948{
949 DWORD dwApiVersion;
950 LPCWSTR wzUpdateLocation;
951};
952
953struct BA_ONDETECTUPDATEBEGIN_RESULTS
954{
955 DWORD dwApiVersion;
956 BOOL fCancel;
957 BOOL fSkip;
958};
959
960struct BA_ONDETECTUPDATECOMPLETE_ARGS
961{
962 DWORD dwApiVersion;
963 HRESULT hrStatus;
964};
965
966struct BA_ONDETECTUPDATECOMPLETE_RESULTS
967{
968 DWORD dwApiVersion;
969 BOOL fIgnoreError;
970};
971
972struct BA_ONELEVATEBEGIN_ARGS
973{
974 DWORD dwApiVersion;
975};
976
977struct BA_ONELEVATEBEGIN_RESULTS
978{
979 DWORD dwApiVersion;
980 BOOL fCancel;
981};
982
983struct BA_ONELEVATECOMPLETE_ARGS
984{
985 DWORD dwApiVersion;
986 HRESULT hrStatus;
987};
988
989struct BA_ONELEVATECOMPLETE_RESULTS
990{
991 DWORD dwApiVersion;
992};
993
994struct BA_ONERROR_ARGS
995{
996 DWORD dwApiVersion;
997 BOOTSTRAPPER_ERROR_TYPE errorType;
998 LPCWSTR wzPackageId;
999 DWORD dwCode;
1000 LPCWSTR wzError;
1001 DWORD dwUIHint;
1002 DWORD cData;
1003 LPCWSTR* rgwzData;
1004 INT32 nRecommendation;
1005};
1006
1007struct BA_ONERROR_RESULTS
1008{
1009 DWORD dwApiVersion;
1010 INT32 nResult;
1011};
1012
1013struct BA_ONEXECUTEBEGIN_ARGS
1014{
1015 DWORD dwApiVersion;
1016 DWORD cExecutingPackages;
1017};
1018
1019struct BA_ONEXECUTEBEGIN_RESULTS
1020{
1021 DWORD dwApiVersion;
1022 BOOL fCancel;
1023};
1024
1025struct BA_ONEXECUTECOMPLETE_ARGS
1026{
1027 DWORD dwApiVersion;
1028 HRESULT hrStatus;
1029};
1030
1031struct BA_ONEXECUTECOMPLETE_RESULTS
1032{
1033 DWORD dwApiVersion;
1034};
1035
1036struct BA_ONEXECUTEFILESINUSE_ARGS
1037{
1038 DWORD dwApiVersion;
1039 LPCWSTR wzPackageId;
1040 DWORD cFiles;
1041 LPCWSTR* rgwzFiles;
1042 INT32 nRecommendation;
1043 BOOTSTRAPPER_FILES_IN_USE_TYPE source;
1044};
1045
1046struct BA_ONEXECUTEFILESINUSE_RESULTS
1047{
1048 DWORD dwApiVersion;
1049 INT32 nResult;
1050};
1051
1052struct BA_ONEXECUTEMSIMESSAGE_ARGS
1053{
1054 DWORD dwApiVersion;
1055 LPCWSTR wzPackageId;
1056 INSTALLMESSAGE messageType;
1057 DWORD dwUIHint;
1058 LPCWSTR wzMessage;
1059 DWORD cData;
1060 LPCWSTR* rgwzData;
1061 INT32 nRecommendation;
1062};
1063
1064struct BA_ONEXECUTEMSIMESSAGE_RESULTS
1065{
1066 DWORD dwApiVersion;
1067 INT32 nResult;
1068};
1069
1070struct BA_ONEXECUTEPACKAGEBEGIN_ARGS
1071{
1072 DWORD dwApiVersion;
1073 LPCWSTR wzPackageId;
1074 BOOL fExecute; // false means rollback.
1075 BOOTSTRAPPER_ACTION_STATE action;
1076 INSTALLUILEVEL uiLevel;
1077 BOOL fDisableExternalUiHandler;
1078};
1079
1080struct BA_ONEXECUTEPACKAGEBEGIN_RESULTS
1081{
1082 DWORD dwApiVersion;
1083 BOOL fCancel;
1084};
1085
1086struct BA_ONEXECUTEPACKAGECOMPLETE_ARGS
1087{
1088 DWORD dwApiVersion;
1089 LPCWSTR wzPackageId;
1090 HRESULT hrStatus;
1091 // Indicates whether this package requires a reboot or initiated the reboot already.
1092 BOOTSTRAPPER_APPLY_RESTART restart;
1093 BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION recommendation;
1094};
1095
1096struct BA_ONEXECUTEPACKAGECOMPLETE_RESULTS
1097{
1098 DWORD dwApiVersion;
1099 BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION action;
1100};
1101
1102struct BA_ONEXECUTEPATCHTARGET_ARGS
1103{
1104 DWORD dwApiVersion;
1105 LPCWSTR wzPackageId;
1106 LPCWSTR wzTargetProductCode;
1107};
1108
1109struct BA_ONEXECUTEPATCHTARGET_RESULTS
1110{
1111 DWORD dwApiVersion;
1112 BOOL fCancel;
1113};
1114
1115struct BA_ONEXECUTEPROCESSCANCEL_ARGS
1116{
1117 DWORD dwApiVersion;
1118 LPCWSTR wzPackageId;
1119 DWORD dwProcessId;
1120 BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION recommendation;
1121};
1122
1123struct BA_ONEXECUTEPROCESSCANCEL_RESULTS
1124{
1125 DWORD dwApiVersion;
1126 BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION action;
1127};
1128
1129struct BA_ONEXECUTEPROGRESS_ARGS
1130{
1131 DWORD dwApiVersion;
1132 LPCWSTR wzPackageId;
1133 DWORD dwProgressPercentage;
1134 DWORD dwOverallPercentage;
1135};
1136
1137struct BA_ONEXECUTEPROGRESS_RESULTS
1138{
1139 DWORD dwApiVersion;
1140 BOOL fCancel;
1141};
1142
1143struct BA_ONLAUNCHAPPROVEDEXEBEGIN_ARGS
1144{
1145 DWORD dwApiVersion;
1146};
1147
1148struct BA_ONLAUNCHAPPROVEDEXEBEGIN_RESULTS
1149{
1150 DWORD dwApiVersion;
1151 BOOL fCancel;
1152};
1153
1154struct BA_ONLAUNCHAPPROVEDEXECOMPLETE_ARGS
1155{
1156 DWORD dwApiVersion;
1157 HRESULT hrStatus;
1158 // Only valid if the operation succeeded.
1159 DWORD dwProcessId;
1160};
1161
1162struct BA_ONLAUNCHAPPROVEDEXECOMPLETE_RESULTS
1163{
1164 DWORD dwApiVersion;
1165};
1166
1167struct BA_ONPAUSEAUTOMATICUPDATESBEGIN_ARGS
1168{
1169 DWORD dwApiVersion;
1170};
1171
1172struct BA_ONPAUSEAUTOMATICUPDATESBEGIN_RESULTS
1173{
1174 DWORD dwApiVersion;
1175};
1176
1177struct BA_ONPAUSEAUTOMATICUPDATESCOMPLETE_ARGS
1178{
1179 DWORD dwApiVersion;
1180 HRESULT hrStatus;
1181};
1182
1183struct BA_ONPAUSEAUTOMATICUPDATESCOMPLETE_RESULTS
1184{
1185 DWORD dwApiVersion;
1186};
1187
1188struct BA_ONPLANBEGIN_ARGS
1189{
1190 DWORD dwApiVersion;
1191 DWORD cPackages;
1192};
1193
1194struct BA_ONPLANBEGIN_RESULTS
1195{
1196 DWORD dwApiVersion;
1197 BOOL fCancel;
1198};
1199
1200struct BA_ONPLANCOMPATIBLEMSIPACKAGEBEGIN_ARGS
1201{
1202 DWORD dwApiVersion;
1203 LPCWSTR wzPackageId;
1204 LPCWSTR wzCompatiblePackageId;
1205 LPCWSTR wzCompatiblePackageVersion;
1206 BOOL fRecommendedRemove;
1207};
1208
1209struct BA_ONPLANCOMPATIBLEMSIPACKAGEBEGIN_RESULTS
1210{
1211 DWORD dwApiVersion;
1212 BOOL fCancel;
1213 BOOL fRequestRemove;
1214};
1215
1216struct BA_ONPLANCOMPATIBLEMSIPACKAGECOMPLETE_ARGS
1217{
1218 DWORD dwApiVersion;
1219 LPCWSTR wzPackageId;
1220 LPCWSTR wzCompatiblePackageId;
1221 HRESULT hrStatus;
1222 BOOL fRequestedRemove;
1223};
1224
1225struct BA_ONPLANCOMPATIBLEMSIPACKAGECOMPLETE_RESULTS
1226{
1227 DWORD dwApiVersion;
1228};
1229
1230struct BA_ONPLANCOMPLETE_ARGS
1231{
1232 DWORD dwApiVersion;
1233 HRESULT hrStatus;
1234};
1235
1236struct BA_ONPLANCOMPLETE_RESULTS
1237{
1238 DWORD dwApiVersion;
1239};
1240
1241struct BA_ONPLANFORWARDCOMPATIBLEBUNDLE_ARGS
1242{
1243 DWORD dwApiVersion;
1244 LPCWSTR wzBundleId;
1245 BOOTSTRAPPER_RELATION_TYPE relationType;
1246 LPCWSTR wzBundleTag;
1247 BOOL fPerMachine;
1248 LPCWSTR wzVersion;
1249 BOOL fRecommendedIgnoreBundle;
1250};
1251
1252struct BA_ONPLANFORWARDCOMPATIBLEBUNDLE_RESULTS
1253{
1254 DWORD dwApiVersion;
1255 BOOL fCancel;
1256 BOOL fIgnoreBundle;
1257};
1258
1259struct BA_ONPLANMSIFEATURE_ARGS
1260{
1261 DWORD dwApiVersion;
1262 LPCWSTR wzPackageId;
1263 LPCWSTR wzFeatureId;
1264 BOOTSTRAPPER_FEATURE_STATE recommendedState;
1265};
1266
1267struct BA_ONPLANMSIFEATURE_RESULTS
1268{
1269 DWORD dwApiVersion;
1270 BOOTSTRAPPER_FEATURE_STATE requestedState;
1271 BOOL fCancel;
1272};
1273
1274struct BA_ONPLANMSIPACKAGE_ARGS
1275{
1276 DWORD dwApiVersion;
1277 LPCWSTR wzPackageId;
1278 BOOL fExecute; // false means rollback.
1279 BOOTSTRAPPER_ACTION_STATE action;
1280 BOOTSTRAPPER_MSI_FILE_VERSIONING recommendedFileVersioning;
1281};
1282
1283struct BA_ONPLANMSIPACKAGE_RESULTS
1284{
1285 DWORD dwApiVersion;
1286 BOOL fCancel;
1287 BURN_MSI_PROPERTY actionMsiProperty;
1288 INSTALLUILEVEL uiLevel;
1289 BOOL fDisableExternalUiHandler;
1290 BOOTSTRAPPER_MSI_FILE_VERSIONING fileVersioning;
1291};
1292
1293struct BA_ONPLANNEDCOMPATIBLEPACKAGE_ARGS
1294{
1295 DWORD dwApiVersion;
1296 LPCWSTR wzPackageId;
1297 LPCWSTR wzCompatiblePackageId;
1298 BOOL fRemove;
1299};
1300
1301struct BA_ONPLANNEDCOMPATIBLEPACKAGE_RESULTS
1302{
1303 DWORD dwApiVersion;
1304};
1305
1306struct BA_ONPLANNEDPACKAGE_ARGS
1307{
1308 DWORD dwApiVersion;
1309 LPCWSTR wzPackageId;
1310 BOOTSTRAPPER_ACTION_STATE execute;
1311 BOOTSTRAPPER_ACTION_STATE rollback;
1312 BOOL fPlannedCache;
1313 BOOL fPlannedUncache;
1314};
1315
1316struct BA_ONPLANNEDPACKAGE_RESULTS
1317{
1318 DWORD dwApiVersion;
1319};
1320
1321struct BA_ONPLANPACKAGEBEGIN_ARGS
1322{
1323 DWORD dwApiVersion;
1324 LPCWSTR wzPackageId;
1325 BOOTSTRAPPER_PACKAGE_STATE state;
1326 BOOL fCached;
1327 BOOTSTRAPPER_PACKAGE_CONDITION_RESULT installCondition;
1328 BOOTSTRAPPER_REQUEST_STATE recommendedState;
1329 BOOTSTRAPPER_CACHE_TYPE recommendedCacheType;
1330 BOOTSTRAPPER_PACKAGE_CONDITION_RESULT repairCondition;
1331};
1332
1333struct BA_ONPLANPACKAGEBEGIN_RESULTS
1334{
1335 DWORD dwApiVersion;
1336 BOOL fCancel;
1337 BOOTSTRAPPER_REQUEST_STATE requestedState;
1338 BOOTSTRAPPER_CACHE_TYPE requestedCacheType;
1339};
1340
1341struct BA_ONPLANPACKAGECOMPLETE_ARGS
1342{
1343 DWORD dwApiVersion;
1344 LPCWSTR wzPackageId;
1345 HRESULT hrStatus;
1346 BOOTSTRAPPER_REQUEST_STATE requested;
1347};
1348
1349struct BA_ONPLANPACKAGECOMPLETE_RESULTS
1350{
1351 DWORD dwApiVersion;
1352};
1353
1354struct BA_ONPLANRELATEDBUNDLE_ARGS
1355{
1356 DWORD dwApiVersion;
1357 LPCWSTR wzBundleId;
1358 BOOTSTRAPPER_REQUEST_STATE recommendedState;
1359};
1360
1361struct BA_ONPLANRELATEDBUNDLE_RESULTS
1362{
1363 DWORD dwApiVersion;
1364 BOOL fCancel;
1365 BOOTSTRAPPER_REQUEST_STATE requestedState;
1366};
1367
1368struct BA_ONPLANRELATEDBUNDLETYPE_ARGS
1369{
1370 DWORD dwApiVersion;
1371 LPCWSTR wzBundleId;
1372 BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE recommendedType;
1373};
1374
1375struct BA_ONPLANRELATEDBUNDLETYPE_RESULTS
1376{
1377 DWORD dwApiVersion;
1378 BOOL fCancel;
1379 BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE requestedType;
1380};
1381
1382struct BA_ONPLANRESTORERELATEDBUNDLE_ARGS
1383{
1384 DWORD dwApiVersion;
1385 LPCWSTR wzBundleId;
1386 BOOTSTRAPPER_REQUEST_STATE recommendedState;
1387};
1388
1389struct BA_ONPLANRESTORERELATEDBUNDLE_RESULTS
1390{
1391 DWORD dwApiVersion;
1392 BOOL fCancel;
1393 BOOTSTRAPPER_REQUEST_STATE requestedState;
1394};
1395
1396struct BA_ONPLANROLLBACKBOUNDARY_ARGS
1397{
1398 DWORD dwApiVersion;
1399 LPCWSTR wzRollbackBoundaryId;
1400 BOOL fRecommendedTransaction;
1401};
1402
1403struct BA_ONPLANROLLBACKBOUNDARY_RESULTS
1404{
1405 DWORD dwApiVersion;
1406 BOOL fTransaction;
1407 BOOL fCancel;
1408};
1409
1410struct BA_ONPLANPATCHTARGET_ARGS
1411{
1412 DWORD dwApiVersion;
1413 LPCWSTR wzPackageId;
1414 LPCWSTR wzProductCode;
1415 BOOTSTRAPPER_REQUEST_STATE recommendedState;
1416};
1417
1418struct BA_ONPLANPATCHTARGET_RESULTS
1419{
1420 DWORD dwApiVersion;
1421 BOOL fCancel;
1422 BOOTSTRAPPER_REQUEST_STATE requestedState;
1423};
1424
1425struct BA_ONPROGRESS_ARGS
1426{
1427 DWORD dwApiVersion;
1428 DWORD dwProgressPercentage;
1429 DWORD dwOverallPercentage;
1430};
1431
1432struct BA_ONPROGRESS_RESULTS
1433{
1434 DWORD dwApiVersion;
1435 BOOL fCancel;
1436};
1437
1438struct BA_ONREGISTERBEGIN_ARGS
1439{
1440 DWORD dwApiVersion;
1441 BOOTSTRAPPER_REGISTRATION_TYPE recommendedRegistrationType;
1442};
1443
1444struct BA_ONREGISTERBEGIN_RESULTS
1445{
1446 DWORD dwApiVersion;
1447 BOOL fCancel;
1448 BOOTSTRAPPER_REGISTRATION_TYPE registrationType;
1449};
1450
1451struct BA_ONREGISTERCOMPLETE_ARGS
1452{
1453 DWORD dwApiVersion;
1454 HRESULT hrStatus;
1455};
1456
1457struct BA_ONREGISTERCOMPLETE_RESULTS
1458{
1459 DWORD dwApiVersion;
1460};
1461
1462struct BA_ONROLLBACKMSITRANSACTIONBEGIN_ARGS
1463{
1464 DWORD dwApiVersion;
1465 LPCWSTR wzTransactionId;
1466};
1467
1468struct BA_ONROLLBACKMSITRANSACTIONBEGIN_RESULTS
1469{
1470 DWORD dwApiVersion;
1471};
1472
1473struct BA_ONROLLBACKMSITRANSACTIONCOMPLETE_ARGS
1474{
1475 DWORD dwApiVersion;
1476 LPCWSTR wzTransactionId;
1477 HRESULT hrStatus;
1478 BOOTSTRAPPER_APPLY_RESTART restart;
1479 BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION recommendation;
1480};
1481
1482struct BA_ONROLLBACKMSITRANSACTIONCOMPLETE_RESULTS
1483{
1484 DWORD dwApiVersion;
1485 BOOTSTRAPPER_EXECUTEMSITRANSACTIONCOMPLETE_ACTION action;
1486};
1487
1488struct BA_ONSHUTDOWN_ARGS
1489{
1490 DWORD dwApiVersion;
1491};
1492
1493struct BA_ONSHUTDOWN_RESULTS
1494{
1495 DWORD dwApiVersion;
1496 BOOTSTRAPPER_SHUTDOWN_ACTION action;
1497};
1498
1499struct BA_ONSTARTUP_ARGS
1500{
1501 DWORD dwApiVersion;
1502};
1503
1504struct BA_ONSTARTUP_RESULTS
1505{
1506 DWORD dwApiVersion;
1507};
1508
1509struct BA_ONSYSTEMRESTOREPOINTBEGIN_ARGS
1510{
1511 DWORD dwApiVersion;
1512};
1513
1514struct BA_ONSYSTEMRESTOREPOINTBEGIN_RESULTS
1515{
1516 DWORD dwApiVersion;
1517};
1518
1519struct BA_ONSYSTEMRESTOREPOINTCOMPLETE_ARGS
1520{
1521 DWORD dwApiVersion;
1522 HRESULT hrStatus;
1523};
1524
1525struct BA_ONSYSTEMRESTOREPOINTCOMPLETE_RESULTS
1526{
1527 DWORD dwApiVersion;
1528};
1529
1530struct BA_ONUNREGISTERBEGIN_ARGS
1531{
1532 DWORD dwApiVersion;
1533 BOOTSTRAPPER_REGISTRATION_TYPE recommendedRegistrationType;
1534};
1535
1536struct BA_ONUNREGISTERBEGIN_RESULTS
1537{
1538 DWORD dwApiVersion;
1539 BOOTSTRAPPER_REGISTRATION_TYPE registrationType;
1540};
1541
1542struct BA_ONUNREGISTERCOMPLETE_ARGS
1543{
1544 DWORD dwApiVersion;
1545 HRESULT hrStatus;
1546};
1547
1548struct BA_ONUNREGISTERCOMPLETE_RESULTS
1549{
1550 DWORD dwApiVersion;
1551};
1552
1553#ifdef TODO_DELETE
1554
1555extern "C" typedef HRESULT(WINAPI *PFN_BOOTSTRAPPER_APPLICATION_PROC)(
1556 __in BOOTSTRAPPER_APPLICATION_MESSAGE message,
1557 __in const LPVOID pvArgs,
1558 __inout LPVOID pvResults,
1559 __in_opt LPVOID pvContext
1560 );
1561
1562struct BOOTSTRAPPER_DESTROY_ARGS
1563{
1564 DWORD dwApiVersion;
1565 BOOL fReload;
1566};
1567
1568struct BOOTSTRAPPER_DESTROY_RESULTS
1569{
1570 DWORD dwApiVersion;
1571 BOOL fDisableUnloading; // indicates the BA dll must not be unloaded after BootstrapperApplicationDestroy.
1572};
1573
1574extern "C" typedef void (WINAPI *PFN_BOOTSTRAPPER_APPLICATION_DESTROY)(
1575 __in const BOOTSTRAPPER_DESTROY_ARGS* pArgs,
1576 __inout BOOTSTRAPPER_DESTROY_RESULTS* pResults
1577 );
1578
1579
1580
1581struct BOOTSTRAPPER_CREATE_ARGS
1582{
1583 DWORD dwApiVersion;
1584 DWORD64 qwEngineAPIVersion;
1585 PFN_BOOTSTRAPPER_ENGINE_PROC pfnBootstrapperEngineProc;
1586 LPVOID pvBootstrapperEngineProcContext;
1587 BOOTSTRAPPER_COMMAND* pCommand;
1588};
1589
1590struct BOOTSTRAPPER_CREATE_RESULTS
1591{
1592 DWORD dwApiVersion;
1593 PFN_BOOTSTRAPPER_APPLICATION_PROC pfnBootstrapperApplicationProc;
1594 LPVOID pvBootstrapperApplicationProcContext;
1595};
1596
1597extern "C" typedef HRESULT(WINAPI *PFN_BOOTSTRAPPER_APPLICATION_CREATE)(
1598 __in const BOOTSTRAPPER_CREATE_ARGS* pArgs,
1599 __inout BOOTSTRAPPER_CREATE_RESULTS* pResults
1600 );
1601
1602#endif
1603
1604#if defined(__cplusplus)
1605}
1606#endif