diff --git a/base/applications/taskmgr/perfdata.c b/base/applications/taskmgr/perfdata.c index 7f0869a5752..6ca1a76581b 100644 --- a/base/applications/taskmgr/perfdata.c +++ b/base/applications/taskmgr/perfdata.c @@ -176,6 +176,7 @@ void PerfDataRefresh(void) PSID ProcessUser; ULONG Buffer[64]; /* must be 4 bytes aligned! */ ULONG cwcUserName; + BOOL bIsWow64; /* Get new system time */ status = NtQuerySystemInformation(SystemTimeOfDayInformation, &SysTimeInfo, sizeof(SysTimeInfo), NULL); @@ -389,6 +390,11 @@ ReadProcOwner: pPerfData[Idx].GDIObjectCount = GetGuiResources(hProcess, GR_GDIOBJECTS); } + if (IsWow64Process(hProcess, &bIsWow64) && bIsWow64) + { + wcscat(pPerfData[Idx].ImageName, L" *32"); + } + GetProcessIoCounters(hProcess, &pPerfData[Idx].IOCounters); CloseHandle(hProcess); } else { diff --git a/base/applications/taskmgr/perfdata.h b/base/applications/taskmgr/perfdata.h index 0a06c4d5cf2..b16d0240f05 100644 --- a/base/applications/taskmgr/perfdata.h +++ b/base/applications/taskmgr/perfdata.h @@ -12,7 +12,7 @@ typedef struct _PERFDATA { - WCHAR ImageName[MAX_PATH]; + WCHAR ImageName[MAX_PATH + _countof(L" *32") - 1]; HANDLE ProcessId; WCHAR UserName[MAX_PATH]; ULONG SessionId;