diff --git a/windows/src/engine/tsysinfo/si_overview.pas b/windows/src/engine/tsysinfo/si_overview.pas index 8eae2fdea8..765e72e13b 100644 --- a/windows/src/engine/tsysinfo/si_overview.pas +++ b/windows/src/engine/tsysinfo/si_overview.pas @@ -45,6 +45,9 @@ begin Result := 'Overview'; end; +type + TIsWow64Process2 = function(hProcess: THandle; out pProcessMachine: USHORT; out pNativeMachine: USHORT): BOOL; stdcall; + function TSI_Overview.DoCollect: Boolean; var n, nn, node: IXMLDOMNode; @@ -55,6 +58,9 @@ var buf: array[0..1023] of char; freespace, totalspace, totalfree: Int64; stat: TMemoryStatus; + processMachine: USHORT; + nativeMachine: USHORT; + IsWow64Process2: TIsWow64Process2; begin { SYSTEM INFO: @@ -85,6 +91,17 @@ SYSTEM INFO: then xmlSetAttribute(n,'x64', 'true') else xmlSetAttribute(n,'x64', 'false'); + IsWow64Process2 := GetProcAddress(GetModuleHandle(kernel32), 'IsWow64Process2'); + if Assigned(IsWow64Process2) then + begin + if IsWow64Process2(GetCurrentProcess, processMachine, nativeMachine) then + begin + // https://learn.microsoft.com/en-us/windows/win32/sysinfo/image-file-machine-constants + xmlSetAttribute(n, 'ProcessMachine', IntToHex(processMachine, 4)); + xmlSetAttribute(n, 'NativeMachine', IntToHex(nativeMachine, 4)); + end; + end; + { Free disk space } n := xmlAddChild(node,'DiskSpace'); diff --git a/windows/src/engine/tsysinfo/si_overview.xslt b/windows/src/engine/tsysinfo/si_overview.xslt index c254a97296..96f583375e 100644 --- a/windows/src/engine/tsysinfo/si_overview.xslt +++ b/windows/src/engine/tsysinfo/si_overview.xslt @@ -33,7 +33,7 @@ - + @@ -128,8 +128,46 @@ + + Native Machine + + + Intel 386 + MIPS R3000 + MIPS R3000 + MIPS R4000 + MIPS R10000 + MIPS WCE v2 + Alpha AXP + SH3 + SH3 DSP + SH3E + SH4 + SH5 + ARM + ARM Thumb + ARM Thumb 2 + TAM33BD + PowerPC + PowerPC FP + Intel IA64 + MIPS 16 + Alpha 64 + MIPSFPU + AXP64 + Infineon + CEF + EBC (EFI Byte Code) + AMD64 + M32R + ARM64 + CEE + + + + - +