diff options
Diffstat (limited to 'src/engine/plan.h')
-rw-r--r-- | src/engine/plan.h | 543 |
1 files changed, 543 insertions, 0 deletions
diff --git a/src/engine/plan.h b/src/engine/plan.h new file mode 100644 index 00000000..54cfe59d --- /dev/null +++ b/src/engine/plan.h | |||
@@ -0,0 +1,543 @@ | |||
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 | #if defined(__cplusplus) | ||
6 | extern "C" { | ||
7 | #endif | ||
8 | |||
9 | |||
10 | // constants | ||
11 | |||
12 | const DWORD BURN_PLAN_INVALID_ACTION_INDEX = 0x80000000; | ||
13 | |||
14 | enum BURN_REGISTRATION_ACTION_OPERATIONS | ||
15 | { | ||
16 | BURN_REGISTRATION_ACTION_OPERATIONS_NONE = 0x0, | ||
17 | BURN_REGISTRATION_ACTION_OPERATIONS_CACHE_BUNDLE = 0x1, | ||
18 | BURN_REGISTRATION_ACTION_OPERATIONS_WRITE_REGISTRATION = 0x2, | ||
19 | BURN_REGISTRATION_ACTION_OPERATIONS_UPDATE_SIZE = 0x4, | ||
20 | }; | ||
21 | |||
22 | enum BURN_DEPENDENCY_REGISTRATION_ACTION | ||
23 | { | ||
24 | BURN_DEPENDENCY_REGISTRATION_ACTION_NONE, | ||
25 | BURN_DEPENDENCY_REGISTRATION_ACTION_REGISTER, | ||
26 | BURN_DEPENDENCY_REGISTRATION_ACTION_UNREGISTER, | ||
27 | }; | ||
28 | |||
29 | enum BURN_DEPENDENT_REGISTRATION_ACTION_TYPE | ||
30 | { | ||
31 | BURN_DEPENDENT_REGISTRATION_ACTION_TYPE_NONE, | ||
32 | BURN_DEPENDENT_REGISTRATION_ACTION_TYPE_REGISTER, | ||
33 | BURN_DEPENDENT_REGISTRATION_ACTION_TYPE_UNREGISTER, | ||
34 | }; | ||
35 | |||
36 | enum BURN_CACHE_ACTION_TYPE | ||
37 | { | ||
38 | BURN_CACHE_ACTION_TYPE_NONE, | ||
39 | BURN_CACHE_ACTION_TYPE_CHECKPOINT, | ||
40 | BURN_CACHE_ACTION_TYPE_LAYOUT_BUNDLE, | ||
41 | BURN_CACHE_ACTION_TYPE_PACKAGE_START, | ||
42 | BURN_CACHE_ACTION_TYPE_PACKAGE_STOP, | ||
43 | BURN_CACHE_ACTION_TYPE_ROLLBACK_PACKAGE, | ||
44 | BURN_CACHE_ACTION_TYPE_SIGNAL_SYNCPOINT, | ||
45 | BURN_CACHE_ACTION_TYPE_ACQUIRE_CONTAINER, | ||
46 | BURN_CACHE_ACTION_TYPE_EXTRACT_CONTAINER, | ||
47 | BURN_CACHE_ACTION_TYPE_LAYOUT_CONTAINER, | ||
48 | BURN_CACHE_ACTION_TYPE_ACQUIRE_PAYLOAD, | ||
49 | BURN_CACHE_ACTION_TYPE_CACHE_PAYLOAD, | ||
50 | BURN_CACHE_ACTION_TYPE_LAYOUT_PAYLOAD, | ||
51 | BURN_CACHE_ACTION_TYPE_TRANSACTION_BOUNDARY, | ||
52 | }; | ||
53 | |||
54 | enum BURN_EXECUTE_ACTION_TYPE | ||
55 | { | ||
56 | BURN_EXECUTE_ACTION_TYPE_NONE, | ||
57 | BURN_EXECUTE_ACTION_TYPE_CHECKPOINT, | ||
58 | BURN_EXECUTE_ACTION_TYPE_WAIT_SYNCPOINT, | ||
59 | BURN_EXECUTE_ACTION_TYPE_UNCACHE_PACKAGE, | ||
60 | BURN_EXECUTE_ACTION_TYPE_EXE_PACKAGE, | ||
61 | BURN_EXECUTE_ACTION_TYPE_MSI_PACKAGE, | ||
62 | BURN_EXECUTE_ACTION_TYPE_MSP_TARGET, | ||
63 | BURN_EXECUTE_ACTION_TYPE_MSU_PACKAGE, | ||
64 | BURN_EXECUTE_ACTION_TYPE_SERVICE_STOP, | ||
65 | BURN_EXECUTE_ACTION_TYPE_SERVICE_START, | ||
66 | BURN_EXECUTE_ACTION_TYPE_PACKAGE_PROVIDER, | ||
67 | BURN_EXECUTE_ACTION_TYPE_PACKAGE_DEPENDENCY, | ||
68 | BURN_EXECUTE_ACTION_TYPE_ROLLBACK_BOUNDARY, | ||
69 | BURN_EXECUTE_ACTION_TYPE_REGISTRATION, | ||
70 | BURN_EXECUTE_ACTION_TYPE_COMPATIBLE_PACKAGE, | ||
71 | }; | ||
72 | |||
73 | enum BURN_CLEAN_ACTION_TYPE | ||
74 | { | ||
75 | BURN_CLEAN_ACTION_TYPE_NONE, | ||
76 | BURN_CLEAN_ACTION_TYPE_BUNDLE, | ||
77 | BURN_CLEAN_ACTION_TYPE_PACKAGE, | ||
78 | }; | ||
79 | |||
80 | |||
81 | // structs | ||
82 | |||
83 | typedef struct _BURN_EXTRACT_PAYLOAD | ||
84 | { | ||
85 | BURN_PACKAGE* pPackage; | ||
86 | BURN_PAYLOAD* pPayload; | ||
87 | LPWSTR sczUnverifiedPath; | ||
88 | } BURN_EXTRACT_PAYLOAD; | ||
89 | |||
90 | typedef struct _BURN_DEPENDENT_REGISTRATION_ACTION | ||
91 | { | ||
92 | BURN_DEPENDENT_REGISTRATION_ACTION_TYPE type; | ||
93 | LPWSTR sczBundleId; | ||
94 | LPWSTR sczDependentProviderKey; | ||
95 | } BURN_DEPENDENT_REGISTRATION_ACTION; | ||
96 | |||
97 | typedef struct _BURN_CACHE_CONTAINER_PROGRESS | ||
98 | { | ||
99 | LPWSTR wzId; | ||
100 | DWORD iIndex; | ||
101 | BOOL fCachedDuringApply; | ||
102 | BURN_CONTAINER* pContainer; | ||
103 | } BURN_CACHE_CONTAINER_PROGRESS; | ||
104 | |||
105 | typedef struct _BURN_CACHE_PAYLOAD_PROGRESS | ||
106 | { | ||
107 | LPWSTR wzId; | ||
108 | DWORD iIndex; | ||
109 | BOOL fCachedDuringApply; | ||
110 | BURN_PAYLOAD* pPayload; | ||
111 | } BURN_CACHE_PAYLOAD_PROGRESS; | ||
112 | |||
113 | typedef struct _BURN_CACHE_ACTION | ||
114 | { | ||
115 | BURN_CACHE_ACTION_TYPE type; | ||
116 | BOOL fSkipUntilRetried; | ||
117 | union | ||
118 | { | ||
119 | struct | ||
120 | { | ||
121 | DWORD dwId; | ||
122 | } checkpoint; | ||
123 | struct | ||
124 | { | ||
125 | LPWSTR sczExecutableName; | ||
126 | LPWSTR sczLayoutDirectory; | ||
127 | LPWSTR sczUnverifiedPath; | ||
128 | DWORD64 qwBundleSize; | ||
129 | } bundleLayout; | ||
130 | struct | ||
131 | { | ||
132 | BURN_PACKAGE* pPackage; | ||
133 | DWORD cCachePayloads; | ||
134 | DWORD64 qwCachePayloadSizeTotal; | ||
135 | DWORD iPackageCompleteAction; | ||
136 | } packageStart; | ||
137 | struct | ||
138 | { | ||
139 | BURN_PACKAGE* pPackage; | ||
140 | } packageStop; | ||
141 | struct | ||
142 | { | ||
143 | BURN_PACKAGE* pPackage; | ||
144 | } rollbackPackage; | ||
145 | struct | ||
146 | { | ||
147 | HANDLE hEvent; | ||
148 | } syncpoint; | ||
149 | struct | ||
150 | { | ||
151 | BURN_CONTAINER* pContainer; | ||
152 | DWORD iProgress; | ||
153 | LPWSTR sczUnverifiedPath; | ||
154 | } resolveContainer; | ||
155 | struct | ||
156 | { | ||
157 | BURN_CONTAINER* pContainer; | ||
158 | DWORD iSkipUntilAcquiredByAction; | ||
159 | LPWSTR sczContainerUnverifiedPath; | ||
160 | |||
161 | BURN_EXTRACT_PAYLOAD* rgPayloads; | ||
162 | DWORD cPayloads; | ||
163 | } extractContainer; | ||
164 | struct | ||
165 | { | ||
166 | BURN_PACKAGE* pPackage; | ||
167 | BURN_CONTAINER* pContainer; | ||
168 | DWORD iProgress; | ||
169 | DWORD iTryAgainAction; | ||
170 | DWORD cTryAgainAttempts; | ||
171 | LPWSTR sczLayoutDirectory; | ||
172 | LPWSTR sczUnverifiedPath; | ||
173 | BOOL fMove; | ||
174 | } layoutContainer; | ||
175 | struct | ||
176 | { | ||
177 | BURN_PACKAGE* pPackage; | ||
178 | BURN_PAYLOAD* pPayload; | ||
179 | DWORD iProgress; | ||
180 | LPWSTR sczUnverifiedPath; | ||
181 | } resolvePayload; | ||
182 | struct | ||
183 | { | ||
184 | BURN_PACKAGE* pPackage; | ||
185 | BURN_PAYLOAD* pPayload; | ||
186 | DWORD iProgress; | ||
187 | DWORD iTryAgainAction; | ||
188 | DWORD cTryAgainAttempts; | ||
189 | LPWSTR sczUnverifiedPath; | ||
190 | BOOL fMove; | ||
191 | } cachePayload; | ||
192 | struct | ||
193 | { | ||
194 | BURN_PACKAGE* pPackage; | ||
195 | BURN_PAYLOAD* pPayload; | ||
196 | DWORD iProgress; | ||
197 | DWORD iTryAgainAction; | ||
198 | DWORD cTryAgainAttempts; | ||
199 | LPWSTR sczLayoutDirectory; | ||
200 | LPWSTR sczUnverifiedPath; | ||
201 | BOOL fMove; | ||
202 | } layoutPayload; | ||
203 | struct | ||
204 | { | ||
205 | BURN_ROLLBACK_BOUNDARY* pRollbackBoundary; | ||
206 | HANDLE hEvent; | ||
207 | } rollbackBoundary; | ||
208 | }; | ||
209 | } BURN_CACHE_ACTION; | ||
210 | |||
211 | typedef struct _BURN_ORDERED_PATCHES | ||
212 | { | ||
213 | DWORD dwOrder; | ||
214 | BURN_PACKAGE* pPackage; | ||
215 | } BURN_ORDERED_PATCHES; | ||
216 | |||
217 | typedef struct _BURN_EXECUTE_ACTION | ||
218 | { | ||
219 | BURN_EXECUTE_ACTION_TYPE type; | ||
220 | BOOL fDeleted; // used to skip an action after it was planned since deleting actions out of the plan is too hard. | ||
221 | union | ||
222 | { | ||
223 | struct | ||
224 | { | ||
225 | DWORD dwId; | ||
226 | } checkpoint; | ||
227 | struct | ||
228 | { | ||
229 | HANDLE hEvent; | ||
230 | } syncpoint; | ||
231 | struct | ||
232 | { | ||
233 | BURN_PACKAGE* pPackage; | ||
234 | } uncachePackage; | ||
235 | struct | ||
236 | { | ||
237 | BURN_PACKAGE* pPackage; | ||
238 | BOOL fFireAndForget; | ||
239 | BOOTSTRAPPER_ACTION_STATE action; | ||
240 | LPWSTR sczIgnoreDependencies; | ||
241 | LPWSTR sczAncestors; | ||
242 | } exePackage; | ||
243 | struct | ||
244 | { | ||
245 | BURN_PACKAGE* pPackage; | ||
246 | LPWSTR sczLogPath; | ||
247 | DWORD dwLoggingAttributes; | ||
248 | INSTALLUILEVEL uiLevel; | ||
249 | BOOTSTRAPPER_ACTION_STATE action; | ||
250 | |||
251 | BOOTSTRAPPER_FEATURE_ACTION* rgFeatures; | ||
252 | BOOTSTRAPPER_ACTION_STATE* rgSlipstreamPatches; | ||
253 | |||
254 | BURN_ORDERED_PATCHES* rgOrderedPatches; | ||
255 | DWORD cPatches; | ||
256 | } msiPackage; | ||
257 | struct | ||
258 | { | ||
259 | BURN_PACKAGE* pPackage; | ||
260 | LPWSTR sczTargetProductCode; | ||
261 | BURN_PACKAGE* pChainedTargetPackage; | ||
262 | BOOL fSlipstream; | ||
263 | BOOL fPerMachineTarget; | ||
264 | LPWSTR sczLogPath; | ||
265 | INSTALLUILEVEL uiLevel; | ||
266 | BOOTSTRAPPER_ACTION_STATE action; | ||
267 | |||
268 | BURN_ORDERED_PATCHES* rgOrderedPatches; | ||
269 | DWORD cOrderedPatches; | ||
270 | } mspTarget; | ||
271 | struct | ||
272 | { | ||
273 | BURN_PACKAGE* pPackage; | ||
274 | LPWSTR sczLogPath; | ||
275 | BOOTSTRAPPER_ACTION_STATE action; | ||
276 | } msuPackage; | ||
277 | struct | ||
278 | { | ||
279 | LPWSTR sczServiceName; | ||
280 | } service; | ||
281 | struct | ||
282 | { | ||
283 | BOOL fKeep; | ||
284 | } registration; | ||
285 | struct | ||
286 | { | ||
287 | BURN_ROLLBACK_BOUNDARY* pRollbackBoundary; | ||
288 | } rollbackBoundary; | ||
289 | struct | ||
290 | { | ||
291 | BURN_PACKAGE* pPackage; | ||
292 | BURN_DEPENDENCY_ACTION action; | ||
293 | } packageProvider; | ||
294 | struct | ||
295 | { | ||
296 | BURN_PACKAGE* pPackage; | ||
297 | LPWSTR sczBundleProviderKey; | ||
298 | BURN_DEPENDENCY_ACTION action; | ||
299 | } packageDependency; | ||
300 | struct | ||
301 | { | ||
302 | BURN_PACKAGE* pReferencePackage; | ||
303 | LPWSTR sczInstalledProductCode; | ||
304 | DWORD64 qwInstalledVersion; | ||
305 | } compatiblePackage; | ||
306 | }; | ||
307 | } BURN_EXECUTE_ACTION; | ||
308 | |||
309 | typedef struct _BURN_CLEAN_ACTION | ||
310 | { | ||
311 | BURN_PACKAGE* pPackage; | ||
312 | } BURN_CLEAN_ACTION; | ||
313 | |||
314 | typedef struct _BURN_PLAN | ||
315 | { | ||
316 | BOOTSTRAPPER_ACTION action; | ||
317 | LPWSTR wzBundleId; // points directly into parent the ENGINE_STATE. | ||
318 | LPWSTR wzBundleProviderKey; // points directly into parent the ENGINE_STATE. | ||
319 | BOOL fPerMachine; | ||
320 | BOOL fRegister; | ||
321 | DWORD dwRegistrationOperations; | ||
322 | BOOL fKeepRegistrationDefault; | ||
323 | BOOL fDisallowRemoval; | ||
324 | |||
325 | DWORD64 qwCacheSizeTotal; | ||
326 | |||
327 | DWORD64 qwEstimatedSize; | ||
328 | |||
329 | DWORD cExecutePackagesTotal; | ||
330 | DWORD cOverallProgressTicksTotal; | ||
331 | |||
332 | BURN_DEPENDENCY_REGISTRATION_ACTION dependencyRegistrationAction; | ||
333 | |||
334 | BURN_DEPENDENT_REGISTRATION_ACTION* rgRegistrationActions; | ||
335 | DWORD cRegistrationActions; | ||
336 | |||
337 | BURN_DEPENDENT_REGISTRATION_ACTION* rgRollbackRegistrationActions; | ||
338 | DWORD cRollbackRegistrationActions; | ||
339 | |||
340 | BURN_CACHE_ACTION* rgCacheActions; | ||
341 | DWORD cCacheActions; | ||
342 | |||
343 | BURN_CACHE_ACTION* rgRollbackCacheActions; | ||
344 | DWORD cRollbackCacheActions; | ||
345 | |||
346 | BURN_EXECUTE_ACTION* rgExecuteActions; | ||
347 | DWORD cExecuteActions; | ||
348 | |||
349 | BURN_EXECUTE_ACTION* rgRollbackActions; | ||
350 | DWORD cRollbackActions; | ||
351 | |||
352 | BURN_CLEAN_ACTION* rgCleanActions; | ||
353 | DWORD cCleanActions; | ||
354 | |||
355 | DEPENDENCY* rgPlannedProviders; | ||
356 | UINT cPlannedProviders; | ||
357 | |||
358 | BURN_CACHE_CONTAINER_PROGRESS* rgContainerProgress; | ||
359 | DWORD cContainerProgress; | ||
360 | STRINGDICT_HANDLE shContainerProgress; | ||
361 | |||
362 | BURN_CACHE_PAYLOAD_PROGRESS* rgPayloadProgress; | ||
363 | DWORD cPayloadProgress; | ||
364 | STRINGDICT_HANDLE shPayloadProgress; | ||
365 | } BURN_PLAN; | ||
366 | |||
367 | |||
368 | // functions | ||
369 | |||
370 | void PlanReset( | ||
371 | __in BURN_PLAN* pPlan, | ||
372 | __in BURN_PACKAGES* pPackages | ||
373 | ); | ||
374 | void PlanUninitializeExecuteAction( | ||
375 | __in BURN_EXECUTE_ACTION* pExecuteAction | ||
376 | ); | ||
377 | HRESULT PlanSetVariables( | ||
378 | __in BOOTSTRAPPER_ACTION action, | ||
379 | __in BURN_VARIABLES* pVariables | ||
380 | ); | ||
381 | HRESULT PlanDefaultPackageRequestState( | ||
382 | __in BURN_PACKAGE_TYPE packageType, | ||
383 | __in BOOTSTRAPPER_PACKAGE_STATE currentState, | ||
384 | __in BOOL fPermanent, | ||
385 | __in BOOTSTRAPPER_ACTION action, | ||
386 | __in BURN_VARIABLES* pVariables, | ||
387 | __in_z_opt LPCWSTR wzInstallCondition, | ||
388 | __in BOOTSTRAPPER_RELATION_TYPE relationType, | ||
389 | __out BOOTSTRAPPER_REQUEST_STATE* pRequestState | ||
390 | ); | ||
391 | HRESULT PlanLayoutBundle( | ||
392 | __in BURN_PLAN* pPlan, | ||
393 | __in_z LPCWSTR wzExecutableName, | ||
394 | __in DWORD64 qwBundleSize, | ||
395 | __in BURN_VARIABLES* pVariables, | ||
396 | __in BURN_PAYLOADS* pPayloads, | ||
397 | __out_z LPWSTR* psczLayoutDirectory | ||
398 | ); | ||
399 | HRESULT PlanPackages( | ||
400 | __in BURN_REGISTRATION* pRegistration, | ||
401 | __in BURN_USER_EXPERIENCE* pUX, | ||
402 | __in BURN_PACKAGES* pPackages, | ||
403 | __in BURN_PLAN* pPlan, | ||
404 | __in BURN_LOGGING* pLog, | ||
405 | __in BURN_VARIABLES* pVariables, | ||
406 | __in BOOL fBundleInstalled, | ||
407 | __in BOOTSTRAPPER_DISPLAY display, | ||
408 | __in BOOTSTRAPPER_RELATION_TYPE relationType, | ||
409 | __in_z_opt LPCWSTR wzLayoutDirectory, | ||
410 | __inout HANDLE* phSyncpointEvent | ||
411 | ); | ||
412 | HRESULT PlanRegistration( | ||
413 | __in BURN_PLAN* pPlan, | ||
414 | __in BURN_REGISTRATION* pRegistration, | ||
415 | __in BOOTSTRAPPER_RESUME_TYPE resumeType, | ||
416 | __in BOOTSTRAPPER_RELATION_TYPE relationType, | ||
417 | __in_z_opt LPCWSTR wzIgnoreDependencies, | ||
418 | __out BOOL* pfContinuePlanning | ||
419 | ); | ||
420 | HRESULT PlanPassThroughBundle( | ||
421 | __in BURN_USER_EXPERIENCE* pUX, | ||
422 | __in BURN_PACKAGE* pPackage, | ||
423 | __in BURN_PLAN* pPlan, | ||
424 | __in BURN_LOGGING* pLog, | ||
425 | __in BURN_VARIABLES* pVariables, | ||
426 | __in BOOTSTRAPPER_DISPLAY display, | ||
427 | __in BOOTSTRAPPER_RELATION_TYPE relationType, | ||
428 | __inout HANDLE* phSyncpointEvent | ||
429 | ); | ||
430 | HRESULT PlanUpdateBundle( | ||
431 | __in BURN_USER_EXPERIENCE* pUX, | ||
432 | __in BURN_PACKAGE* pPackage, | ||
433 | __in BURN_PLAN* pPlan, | ||
434 | __in BURN_LOGGING* pLog, | ||
435 | __in BURN_VARIABLES* pVariables, | ||
436 | __in BOOTSTRAPPER_DISPLAY display, | ||
437 | __in BOOTSTRAPPER_RELATION_TYPE relationType, | ||
438 | __inout HANDLE* phSyncpointEvent | ||
439 | ); | ||
440 | HRESULT PlanLayoutPackage( | ||
441 | __in BURN_PLAN* pPlan, | ||
442 | __in BURN_PACKAGE* pPackage, | ||
443 | __in_z_opt LPCWSTR wzLayoutDirectory | ||
444 | ); | ||
445 | HRESULT PlanCachePackage( | ||
446 | __in BOOL fPerMachine, | ||
447 | __in BURN_USER_EXPERIENCE* pUserExperience, | ||
448 | __in BURN_PLAN* pPlan, | ||
449 | __in BURN_PACKAGE* pPackage, | ||
450 | __in BURN_VARIABLES* pVariables, | ||
451 | __out HANDLE* phSyncpointEvent | ||
452 | ); | ||
453 | HRESULT PlanExecutePackage( | ||
454 | __in BOOL fPerMachine, | ||
455 | __in BOOTSTRAPPER_DISPLAY display, | ||
456 | __in BURN_USER_EXPERIENCE* pUserExperience, | ||
457 | __in BURN_PLAN* pPlan, | ||
458 | __in BURN_PACKAGE* pPackage, | ||
459 | __in BURN_LOGGING* pLog, | ||
460 | __in BURN_VARIABLES* pVariables, | ||
461 | __inout HANDLE* phSyncpointEvent | ||
462 | ); | ||
463 | HRESULT PlanRelatedBundlesBegin( | ||
464 | __in BURN_USER_EXPERIENCE* pUserExperience, | ||
465 | __in BURN_REGISTRATION* pRegistration, | ||
466 | __in BOOTSTRAPPER_RELATION_TYPE relationType, | ||
467 | __in BURN_PLAN* pPlan | ||
468 | ); | ||
469 | HRESULT PlanRelatedBundlesComplete( | ||
470 | __in BURN_REGISTRATION* pRegistration, | ||
471 | __in BURN_PLAN* pPlan, | ||
472 | __in BURN_LOGGING* pLog, | ||
473 | __in BURN_VARIABLES* pVariables, | ||
474 | __inout HANDLE* phSyncpointEvent, | ||
475 | __in DWORD dwExecuteActionEarlyIndex | ||
476 | ); | ||
477 | HRESULT PlanFinalizeActions( | ||
478 | __in BURN_PLAN* pPlan | ||
479 | ); | ||
480 | HRESULT PlanCleanPackage( | ||
481 | __in BURN_PLAN* pPlan, | ||
482 | __in BURN_PACKAGE* pPackage | ||
483 | ); | ||
484 | HRESULT PlanExecuteCacheSyncAndRollback( | ||
485 | __in BURN_PLAN* pPlan, | ||
486 | __in BURN_PACKAGE* pPackage, | ||
487 | __in HANDLE hCacheEvent, | ||
488 | __in BOOL fPlanPackageCacheRollback | ||
489 | ); | ||
490 | HRESULT PlanExecuteCheckpoint( | ||
491 | __in BURN_PLAN* pPlan | ||
492 | ); | ||
493 | HRESULT PlanInsertExecuteAction( | ||
494 | __in DWORD dwIndex, | ||
495 | __in BURN_PLAN* pPlan, | ||
496 | __out BURN_EXECUTE_ACTION** ppExecuteAction | ||
497 | ); | ||
498 | HRESULT PlanInsertRollbackAction( | ||
499 | __in DWORD dwIndex, | ||
500 | __in BURN_PLAN* pPlan, | ||
501 | __out BURN_EXECUTE_ACTION** ppRollbackAction | ||
502 | ); | ||
503 | HRESULT PlanAppendExecuteAction( | ||
504 | __in BURN_PLAN* pPlan, | ||
505 | __out BURN_EXECUTE_ACTION** ppExecuteAction | ||
506 | ); | ||
507 | HRESULT PlanAppendRollbackAction( | ||
508 | __in BURN_PLAN* pPlan, | ||
509 | __out BURN_EXECUTE_ACTION** ppExecuteAction | ||
510 | ); | ||
511 | HRESULT PlanKeepRegistration( | ||
512 | __in BURN_PLAN* pPlan, | ||
513 | __in DWORD iAfterExecutePackageAction, | ||
514 | __in DWORD iBeforeRollbackPackageAction | ||
515 | ); | ||
516 | HRESULT PlanRemoveRegistration( | ||
517 | __in BURN_PLAN* pPlan, | ||
518 | __in DWORD iAfterExecutePackageAction, | ||
519 | __in DWORD iAfterRollbackPackageAction | ||
520 | ); | ||
521 | HRESULT PlanRollbackBoundaryBegin( | ||
522 | __in BURN_PLAN* pPlan, | ||
523 | __in BURN_ROLLBACK_BOUNDARY* pRollbackBoundary | ||
524 | ); | ||
525 | HRESULT PlanRollbackBoundaryComplete( | ||
526 | __in BURN_PLAN* pPlan | ||
527 | ); | ||
528 | HRESULT PlanSetResumeCommand( | ||
529 | __in BURN_REGISTRATION* pRegistration, | ||
530 | __in BOOTSTRAPPER_ACTION action, | ||
531 | __in BOOTSTRAPPER_COMMAND* pCommand, | ||
532 | __in BURN_LOGGING* pLog | ||
533 | ); | ||
534 | |||
535 | #ifdef DEBUG | ||
536 | void PlanDump( | ||
537 | __in BURN_PLAN* pPlan | ||
538 | ); | ||
539 | #endif | ||
540 | |||
541 | #if defined(__cplusplus) | ||
542 | } | ||
543 | #endif | ||