diff --git a/src/common/platform/win_pefile.hpp b/src/common/platform/win_pefile.hpp index 566a8014..8bae3298 100644 --- a/src/common/platform/win_pefile.hpp +++ b/src/common/platform/win_pefile.hpp @@ -94,6 +94,7 @@ #define IMAGE_FILE_MACHINE_CEE 0xC0EE #endif +#define PROCESSOR_ARCHITECTURE_INTEL 0 #define PROCESSOR_ARCHITECTURE_AMD64 9 enum class PEMachineType : std::uint16_t diff --git a/src/windows-emulator/syscalls/system.cpp b/src/windows-emulator/syscalls/system.cpp index 5af6418b..d4b1401e 100644 --- a/src/windows-emulator/syscalls/system.cpp +++ b/src/windows-emulator/syscalls/system.cpp @@ -199,12 +199,14 @@ namespace syscalls }); case SystemProcessorInformation: - return handle_query(c.emu, system_information, system_information_length, return_length, - [&](SYSTEM_PROCESSOR_INFORMATION64& info) { - memset(&info, 0, sizeof(info)); - info.MaximumProcessors = 2; - info.ProcessorArchitecture = PROCESSOR_ARCHITECTURE_AMD64; - }); + case SystemEmulationProcessorInformation: + return handle_query( + c.emu, system_information, system_information_length, return_length, [&](SYSTEM_PROCESSOR_INFORMATION64& info) { + memset(&info, 0, sizeof(info)); + info.MaximumProcessors = 2; + info.ProcessorArchitecture = + (info_class == SystemProcessorInformation ? PROCESSOR_ARCHITECTURE_AMD64 : PROCESSOR_ARCHITECTURE_INTEL); + }); case SystemNumaProcessorMap: return handle_query(c.emu, system_information, system_information_length, return_length,