aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/burnextension.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn/engine/burnextension.cpp')
-rw-r--r--src/burn/engine/burnextension.cpp88
1 files changed, 44 insertions, 44 deletions
diff --git a/src/burn/engine/burnextension.cpp b/src/burn/engine/burnextension.cpp
index ee4b1542..536dbcc9 100644
--- a/src/burn/engine/burnextension.cpp
+++ b/src/burn/engine/burnextension.cpp
@@ -5,7 +5,7 @@
5 5
6static HRESULT SendRequiredBextMessage( 6static HRESULT SendRequiredBextMessage(
7 __in BURN_EXTENSION* pExtension, 7 __in BURN_EXTENSION* pExtension,
8 __in BUNDLE_EXTENSION_MESSAGE message, 8 __in BOOTSTRAPPER_EXTENSION_MESSAGE message,
9 __in const LPVOID pvArgs, 9 __in const LPVOID pvArgs,
10 __inout LPVOID pvResults 10 __inout LPVOID pvResults
11 ); 11 );
@@ -13,7 +13,7 @@ static HRESULT SendRequiredBextMessage(
13// function definitions 13// function definitions
14 14
15/******************************************************************* 15/*******************************************************************
16 BurnExtensionParseFromXml - 16 BurnExtensionParseFromXml -
17 17
18*******************************************************************/ 18*******************************************************************/
19EXTERN_C HRESULT BurnExtensionParseFromXml( 19EXTERN_C HRESULT BurnExtensionParseFromXml(
@@ -28,22 +28,22 @@ EXTERN_C HRESULT BurnExtensionParseFromXml(
28 DWORD cNodes = 0; 28 DWORD cNodes = 0;
29 LPWSTR scz = NULL; 29 LPWSTR scz = NULL;
30 30
31 // Select BundleExtension nodes. 31 // Select BootstrapperExtension nodes.
32 hr = XmlSelectNodes(pixnBundle, L"BundleExtension", &pixnNodes); 32 hr = XmlSelectNodes(pixnBundle, L"BootstrapperExtension", &pixnNodes);
33 ExitOnFailure(hr, "Failed to select BundleExtension nodes."); 33 ExitOnFailure(hr, "Failed to select BootstrapperExtension nodes.");
34 34
35 // Get BundleExtension node count. 35 // Get BootstrapperExtension node count.
36 hr = pixnNodes->get_length((long*)&cNodes); 36 hr = pixnNodes->get_length((long*)&cNodes);
37 ExitOnFailure(hr, "Failed to get BundleExtension node count."); 37 ExitOnFailure(hr, "Failed to get BootstrapperExtension node count.");
38 38
39 if (!cNodes) 39 if (!cNodes)
40 { 40 {
41 ExitFunction(); 41 ExitFunction();
42 } 42 }
43 43
44 // Allocate memory for BundleExtensions. 44 // Allocate memory for BootstrapperExtensions.
45 pBurnExtensions->rgExtensions = (BURN_EXTENSION*)MemAlloc(sizeof(BURN_EXTENSION) * cNodes, TRUE); 45 pBurnExtensions->rgExtensions = (BURN_EXTENSION*)MemAlloc(sizeof(BURN_EXTENSION) * cNodes, TRUE);
46 ExitOnNull(pBurnExtensions->rgExtensions, hr, E_OUTOFMEMORY, "Failed to allocate memory for BundleExtension structs."); 46 ExitOnNull(pBurnExtensions->rgExtensions, hr, E_OUTOFMEMORY, "Failed to allocate memory for BootstrapperExtension structs.");
47 47
48 pBurnExtensions->cExtensions = cNodes; 48 pBurnExtensions->cExtensions = cNodes;
49 49
@@ -64,7 +64,7 @@ EXTERN_C HRESULT BurnExtensionParseFromXml(
64 ExitOnFailure(hr, "Failed to get @EntryPayloadSourcePath."); 64 ExitOnFailure(hr, "Failed to get @EntryPayloadSourcePath.");
65 65
66 hr = PayloadFindEmbeddedBySourcePath(pBaPayloads->sdhPayloads, scz, &pExtension->pEntryPayload); 66 hr = PayloadFindEmbeddedBySourcePath(pBaPayloads->sdhPayloads, scz, &pExtension->pEntryPayload);
67 ExitOnFailure(hr, "Failed to find BundleExtension EntryPayload '%ls'.", pExtension->sczId); 67 ExitOnFailure(hr, "Failed to find BootstrapperExtension EntryPayload '%ls'.", pExtension->sczId);
68 68
69 // prepare next iteration 69 // prepare next iteration
70 ReleaseNullObject(pixnNode); 70 ReleaseNullObject(pixnNode);
@@ -81,7 +81,7 @@ LExit:
81} 81}
82 82
83/******************************************************************* 83/*******************************************************************
84 BurnExtensionUninitialize - 84 BurnExtensionUninitialize -
85 85
86*******************************************************************/ 86*******************************************************************/
87EXTERN_C void BurnExtensionUninitialize( 87EXTERN_C void BurnExtensionUninitialize(
@@ -104,7 +104,7 @@ EXTERN_C void BurnExtensionUninitialize(
104} 104}
105 105
106/******************************************************************* 106/*******************************************************************
107 BurnExtensionLoad - 107 BurnExtensionLoad -
108 108
109*******************************************************************/ 109*******************************************************************/
110EXTERN_C HRESULT BurnExtensionLoad( 110EXTERN_C HRESULT BurnExtensionLoad(
@@ -113,59 +113,59 @@ EXTERN_C HRESULT BurnExtensionLoad(
113 ) 113 )
114{ 114{
115 HRESULT hr = S_OK; 115 HRESULT hr = S_OK;
116 LPWSTR sczBundleExtensionDataPath = NULL; 116 LPWSTR sczBootstrapperExtensionDataPath = NULL;
117 BUNDLE_EXTENSION_CREATE_ARGS args = { }; 117 BOOTSTRAPPER_EXTENSION_CREATE_ARGS args = { };
118 BUNDLE_EXTENSION_CREATE_RESULTS results = { }; 118 BOOTSTRAPPER_EXTENSION_CREATE_RESULTS results = { };
119 119
120 if (!pBurnExtensions->rgExtensions || !pBurnExtensions->cExtensions) 120 if (!pBurnExtensions->rgExtensions || !pBurnExtensions->cExtensions)
121 { 121 {
122 ExitFunction(); 122 ExitFunction();
123 } 123 }
124 124
125 hr = PathConcat(pEngineContext->pEngineState->userExperience.sczTempDirectory, L"BundleExtensionData.xml", &sczBundleExtensionDataPath); 125 hr = PathConcat(pEngineContext->pEngineState->userExperience.sczTempDirectory, L"BootstrapperExtensionData.xml", &sczBootstrapperExtensionDataPath);
126 ExitOnFailure(hr, "Failed to get BundleExtensionDataPath."); 126 ExitOnFailure(hr, "Failed to get BootstrapperExtensionDataPath.");
127 127
128 for (DWORD i = 0; i < pBurnExtensions->cExtensions; ++i) 128 for (DWORD i = 0; i < pBurnExtensions->cExtensions; ++i)
129 { 129 {
130 BURN_EXTENSION* pExtension = &pBurnExtensions->rgExtensions[i]; 130 BURN_EXTENSION* pExtension = &pBurnExtensions->rgExtensions[i];
131 131
132 memset(&args, 0, sizeof(BUNDLE_EXTENSION_CREATE_ARGS)); 132 memset(&args, 0, sizeof(BOOTSTRAPPER_EXTENSION_CREATE_ARGS));
133 memset(&results, 0, sizeof(BUNDLE_EXTENSION_CREATE_RESULTS)); 133 memset(&results, 0, sizeof(BOOTSTRAPPER_EXTENSION_CREATE_RESULTS));
134 134
135 args.cbSize = sizeof(BUNDLE_EXTENSION_CREATE_ARGS); 135 args.cbSize = sizeof(BOOTSTRAPPER_EXTENSION_CREATE_ARGS);
136 args.pfnBundleExtensionEngineProc = EngineForExtensionProc; 136 args.pfnBootstrapperExtensionEngineProc = EngineForExtensionProc;
137 args.pvBundleExtensionEngineProcContext = pEngineContext; 137 args.pvBootstrapperExtensionEngineProcContext = pEngineContext;
138 args.qwEngineAPIVersion = MAKEQWORDVERSION(2021, 4, 27, 0); 138 args.qwEngineAPIVersion = MAKEQWORDVERSION(2021, 4, 27, 0);
139 args.wzBootstrapperWorkingFolder = pEngineContext->pEngineState->userExperience.sczTempDirectory; 139 args.wzBootstrapperWorkingFolder = pEngineContext->pEngineState->userExperience.sczTempDirectory;
140 args.wzBundleExtensionDataPath = sczBundleExtensionDataPath; 140 args.wzBootstrapperExtensionDataPath = sczBootstrapperExtensionDataPath;
141 args.wzExtensionId = pExtension->sczId; 141 args.wzExtensionId = pExtension->sczId;
142 142
143 results.cbSize = sizeof(BUNDLE_EXTENSION_CREATE_RESULTS); 143 results.cbSize = sizeof(BOOTSTRAPPER_EXTENSION_CREATE_RESULTS);
144 144
145 // Load BundleExtension DLL. 145 // Load BootstrapperExtension DLL.
146 pExtension->hBextModule = ::LoadLibraryExW(pExtension->pEntryPayload->sczLocalFilePath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); 146 pExtension->hBextModule = ::LoadLibraryExW(pExtension->pEntryPayload->sczLocalFilePath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
147 ExitOnNullWithLastError(pExtension->hBextModule, hr, "Failed to load BundleExtension DLL '%ls': '%ls'.", pExtension->sczId, pExtension->pEntryPayload->sczLocalFilePath); 147 ExitOnNullWithLastError(pExtension->hBextModule, hr, "Failed to load BootstrapperExtension DLL '%ls': '%ls'.", pExtension->sczId, pExtension->pEntryPayload->sczLocalFilePath);
148 148
149 // Get BundleExtensionCreate entry-point. 149 // Get BootstrapperExtensionCreate entry-point.
150 PFN_BUNDLE_EXTENSION_CREATE pfnCreate = (PFN_BUNDLE_EXTENSION_CREATE)::GetProcAddress(pExtension->hBextModule, "BundleExtensionCreate"); 150 PFN_BOOTSTRAPPER_EXTENSION_CREATE pfnCreate = (PFN_BOOTSTRAPPER_EXTENSION_CREATE)::GetProcAddress(pExtension->hBextModule, "BootstrapperExtensionCreate");
151 ExitOnNullWithLastError(pfnCreate, hr, "Failed to get BundleExtensionCreate entry-point '%ls'.", pExtension->sczId); 151 ExitOnNullWithLastError(pfnCreate, hr, "Failed to get BootstrapperExtensionCreate entry-point '%ls'.", pExtension->sczId);
152 152
153 // Create BundleExtension. 153 // Create BootstrapperExtension.
154 hr = pfnCreate(&args, &results); 154 hr = pfnCreate(&args, &results);
155 ExitOnFailure(hr, "Failed to create BundleExtension '%ls'.", pExtension->sczId); 155 ExitOnFailure(hr, "Failed to create BootstrapperExtension '%ls'.", pExtension->sczId);
156 156
157 pExtension->pfnBurnExtensionProc = results.pfnBundleExtensionProc; 157 pExtension->pfnBurnExtensionProc = results.pfnBootstrapperExtensionProc;
158 pExtension->pvBurnExtensionProcContext = results.pvBundleExtensionProcContext; 158 pExtension->pvBurnExtensionProcContext = results.pvBootstrapperExtensionProcContext;
159 } 159 }
160 160
161LExit: 161LExit:
162 ReleaseStr(sczBundleExtensionDataPath); 162 ReleaseStr(sczBootstrapperExtensionDataPath);
163 163
164 return hr; 164 return hr;
165} 165}
166 166
167/******************************************************************* 167/*******************************************************************
168 BurnExtensionUnload - 168 BurnExtensionUnload -
169 169
170*******************************************************************/ 170*******************************************************************/
171EXTERN_C void BurnExtensionUnload( 171EXTERN_C void BurnExtensionUnload(
@@ -182,18 +182,18 @@ EXTERN_C void BurnExtensionUnload(
182 182
183 if (pExtension->hBextModule) 183 if (pExtension->hBextModule)
184 { 184 {
185 // Get BundleExtensionDestroy entry-point and call it if it exists. 185 // Get BootstrapperExtensionDestroy entry-point and call it if it exists.
186 PFN_BUNDLE_EXTENSION_DESTROY pfnDestroy = (PFN_BUNDLE_EXTENSION_DESTROY)::GetProcAddress(pExtension->hBextModule, "BundleExtensionDestroy"); 186 PFN_BOOTSTRAPPER_EXTENSION_DESTROY pfnDestroy = (PFN_BOOTSTRAPPER_EXTENSION_DESTROY)::GetProcAddress(pExtension->hBextModule, "BootstrapperExtensionDestroy");
187 if (pfnDestroy) 187 if (pfnDestroy)
188 { 188 {
189 pfnDestroy(); 189 pfnDestroy();
190 } 190 }
191 191
192 // Free BundleExtension DLL. 192 // Free BootstrapperExtension DLL.
193 if (!::FreeLibrary(pExtension->hBextModule)) 193 if (!::FreeLibrary(pExtension->hBextModule))
194 { 194 {
195 hr = HRESULT_FROM_WIN32(::GetLastError()); 195 hr = HRESULT_FROM_WIN32(::GetLastError());
196 TraceError(hr, "Failed to unload BundleExtension DLL."); 196 TraceError(hr, "Failed to unload BootstrapperExtension DLL.");
197 } 197 }
198 pExtension->hBextModule = NULL; 198 pExtension->hBextModule = NULL;
199 } 199 }
@@ -234,8 +234,8 @@ EXTERN_C BEEAPI BurnExtensionPerformSearch(
234 ) 234 )
235{ 235{
236 HRESULT hr = S_OK; 236 HRESULT hr = S_OK;
237 BUNDLE_EXTENSION_SEARCH_ARGS args = { }; 237 BOOTSTRAPPER_EXTENSION_SEARCH_ARGS args = { };
238 BUNDLE_EXTENSION_SEARCH_RESULTS results = { }; 238 BOOTSTRAPPER_EXTENSION_SEARCH_RESULTS results = { };
239 239
240 args.cbSize = sizeof(args); 240 args.cbSize = sizeof(args);
241 args.wzId = wzSearchId; 241 args.wzId = wzSearchId;
@@ -243,8 +243,8 @@ EXTERN_C BEEAPI BurnExtensionPerformSearch(
243 243
244 results.cbSize = sizeof(results); 244 results.cbSize = sizeof(results);
245 245
246 hr = SendRequiredBextMessage(pExtension, BUNDLE_EXTENSION_MESSAGE_SEARCH, &args, &results); 246 hr = SendRequiredBextMessage(pExtension, BOOTSTRAPPER_EXTENSION_MESSAGE_SEARCH, &args, &results);
247 ExitOnFailure(hr, "BundleExtension '%ls' Search '%ls' failed.", pExtension->sczId, wzSearchId); 247 ExitOnFailure(hr, "BootstrapperExtension '%ls' Search '%ls' failed.", pExtension->sczId, wzSearchId);
248 248
249LExit: 249LExit:
250 return hr; 250 return hr;
@@ -252,7 +252,7 @@ LExit:
252 252
253static HRESULT SendRequiredBextMessage( 253static HRESULT SendRequiredBextMessage(
254 __in BURN_EXTENSION* pExtension, 254 __in BURN_EXTENSION* pExtension,
255 __in BUNDLE_EXTENSION_MESSAGE message, 255 __in BOOTSTRAPPER_EXTENSION_MESSAGE message,
256 __in const LPVOID pvArgs, 256 __in const LPVOID pvArgs,
257 __inout LPVOID pvResults 257 __inout LPVOID pvResults
258 ) 258 )