aboutsummaryrefslogtreecommitdiff
path: root/src/burn
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn')
-rw-r--r--src/burn/engine/variable.cpp25
-rw-r--r--src/burn/test/BurnUnitTest/VariableTest.cpp1
2 files changed, 26 insertions, 0 deletions
diff --git a/src/burn/engine/variable.cpp b/src/burn/engine/variable.cpp
index e7391a9f..e81704ce 100644
--- a/src/burn/engine/variable.cpp
+++ b/src/burn/engine/variable.cpp
@@ -97,6 +97,10 @@ static HRESULT InitializeVariableVersionNT(
97 __in DWORD_PTR dwpData, 97 __in DWORD_PTR dwpData,
98 __inout BURN_VARIANT* pValue 98 __inout BURN_VARIANT* pValue
99 ); 99 );
100static HRESULT InitializeVariableNativeMachine(
101 __in DWORD_PTR dwpData,
102 __inout BURN_VARIANT* pValue
103 );
100static HRESULT InitializeVariableOsInfo( 104static HRESULT InitializeVariableOsInfo(
101 __in DWORD_PTR dwpData, 105 __in DWORD_PTR dwpData,
102 __inout BURN_VARIANT* pValue 106 __inout BURN_VARIANT* pValue
@@ -223,6 +227,7 @@ extern "C" HRESULT VariableInitialize(
223 {L"LocalAppDataFolder", InitializeVariableCsidlFolder, CSIDL_LOCAL_APPDATA}, 227 {L"LocalAppDataFolder", InitializeVariableCsidlFolder, CSIDL_LOCAL_APPDATA},
224 {VARIABLE_LOGONUSER, InitializeVariableLogonUser, 0}, 228 {VARIABLE_LOGONUSER, InitializeVariableLogonUser, 0},
225 {L"MyPicturesFolder", InitializeVariableCsidlFolder, CSIDL_MYPICTURES}, 229 {L"MyPicturesFolder", InitializeVariableCsidlFolder, CSIDL_MYPICTURES},
230 {L"NativeMachine", InitializeVariableNativeMachine, 0},
226 {L"NTProductType", InitializeVariableOsInfo, OS_INFO_VARIABLE_NTProductType}, 231 {L"NTProductType", InitializeVariableOsInfo, OS_INFO_VARIABLE_NTProductType},
227 {L"NTSuiteBackOffice", InitializeVariableOsInfo, OS_INFO_VARIABLE_NTSuiteBackOffice}, 232 {L"NTSuiteBackOffice", InitializeVariableOsInfo, OS_INFO_VARIABLE_NTSuiteBackOffice},
228 {L"NTSuiteDataCenter", InitializeVariableOsInfo, OS_INFO_VARIABLE_NTSuiteDataCenter}, 233 {L"NTSuiteDataCenter", InitializeVariableOsInfo, OS_INFO_VARIABLE_NTSuiteDataCenter},
@@ -1827,6 +1832,26 @@ LExit:
1827 return hr; 1832 return hr;
1828} 1833}
1829 1834
1835static HRESULT InitializeVariableNativeMachine(
1836 __in DWORD_PTR dwpData,
1837 __inout BURN_VARIANT* pValue
1838 )
1839{
1840 UNREFERENCED_PARAMETER(dwpData);
1841
1842 HRESULT hr = S_OK;
1843 USHORT usNativeMachine = IMAGE_FILE_MACHINE_UNKNOWN;
1844
1845 hr = ProcNativeMachine(::GetCurrentProcess(), &usNativeMachine);
1846 ExitOnFailure(hr, "Failed to get native machine value.");
1847
1848 hr = BVariantSetNumeric(pValue, usNativeMachine);
1849 ExitOnFailure(hr, "Failed to set variant value.");
1850
1851LExit:
1852 return hr;
1853}
1854
1830static HRESULT InitializeVariableComputerName( 1855static HRESULT InitializeVariableComputerName(
1831 __in DWORD_PTR dwpData, 1856 __in DWORD_PTR dwpData,
1832 __inout BURN_VARIANT* pValue 1857 __inout BURN_VARIANT* pValue
diff --git a/src/burn/test/BurnUnitTest/VariableTest.cpp b/src/burn/test/BurnUnitTest/VariableTest.cpp
index 259fb468..2ae829dc 100644
--- a/src/burn/test/BurnUnitTest/VariableTest.cpp
+++ b/src/burn/test/BurnUnitTest/VariableTest.cpp
@@ -477,6 +477,7 @@ namespace Bootstrapper
477 Assert::Equal(E_INVALIDARG, hr); 477 Assert::Equal(E_INVALIDARG, hr);
478 Assert::False(EvaluateConditionHelper(&variables, L"VersionNT = \"VAL\"")); 478 Assert::False(EvaluateConditionHelper(&variables, L"VersionNT = \"VAL\""));
479 479
480 VariableGetNumericHelper(&variables, L"NativeMachine");
480 VariableGetNumericHelper(&variables, L"NTProductType"); 481 VariableGetNumericHelper(&variables, L"NTProductType");
481 VariableGetNumericHelper(&variables, L"NTSuiteBackOffice"); 482 VariableGetNumericHelper(&variables, L"NTSuiteBackOffice");
482 VariableGetNumericHelper(&variables, L"NTSuiteDataCenter"); 483 VariableGetNumericHelper(&variables, L"NTSuiteDataCenter");