mirror of
https://github.com/reactos/reactos.git
synced 2024-10-05 00:43:21 +00:00
don't query additional information for the system idle process (which doesn't work anyway)
svn path=/trunk/; revision=14682
This commit is contained in:
parent
b3dee30733
commit
88e83d47c5
|
@ -260,6 +260,7 @@ void PerfDataRefresh(void)
|
|||
pPerfData[Idx].ThreadCount = pSPI->NumberOfThreads;
|
||||
pPerfData[Idx].SessionId = pSPI->SessionId;
|
||||
|
||||
if (pSPI->UniqueProcessId != NULL) {
|
||||
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, (DWORD)pSPI->UniqueProcessId);
|
||||
if (hProcess) {
|
||||
if (OpenProcessToken(hProcess, TOKEN_QUERY|TOKEN_DUPLICATE|TOKEN_IMPERSONATE, &hProcessToken)) {
|
||||
|
@ -282,11 +283,23 @@ int MultiByteToWideChar(
|
|||
#endif
|
||||
RevertToSelf();
|
||||
CloseHandle(hProcessToken);
|
||||
} else {
|
||||
pPerfData[Idx].UserName[0] = _T('\0');
|
||||
}
|
||||
pPerfData[Idx].USERObjectCount = GetGuiResources(hProcess, GR_USEROBJECTS);
|
||||
pPerfData[Idx].GDIObjectCount = GetGuiResources(hProcess, GR_GDIOBJECTS);
|
||||
GetProcessIoCounters(hProcess, &pPerfData[Idx].IOCounters);
|
||||
CloseHandle(hProcess);
|
||||
} else {
|
||||
goto ClearInfo;
|
||||
}
|
||||
} else {
|
||||
ClearInfo:
|
||||
/* clear information we were unable to fetch */
|
||||
pPerfData[Idx].UserName[0] = _T('\0');
|
||||
pPerfData[Idx].USERObjectCount = 0;
|
||||
pPerfData[Idx].GDIObjectCount = 0;
|
||||
ZeroMemory(&pPerfData[Idx].IOCounters, sizeof(IO_COUNTERS));
|
||||
}
|
||||
pPerfData[Idx].UserTime.QuadPart = pSPI->UserTime.QuadPart;
|
||||
pPerfData[Idx].KernelTime.QuadPart = pSPI->KernelTime.QuadPart;
|
||||
|
|
Loading…
Reference in a new issue