[ros-bugs] [Bug 6188] New: taskmgr using NtQueryInformationProcess incorretly
ReactOS.Bugzilla at reactos.org
ReactOS.Bugzilla at reactos.org
Mon May 2 14:58:14 UTC 2011
http://www.reactos.org/bugzilla/show_bug.cgi?id=6188
Summary: taskmgr using NtQueryInformationProcess incorretly
Product: ReactOS
Version: TRUNK
Platform: x86 Hardware
OS/Version: ReactOS
Status: UNCONFIRMED
Severity: major
Priority: P3
Component: Tools
AssignedTo: ros-bugs at reactos.org
ReportedBy: dmex04 at gmail.com
QAContact: ros-bugs at reactos.org
There are various bugs while running taskmgr under Windows 7, while code from
1997 runs fine, indicating major discrepancies in the psdk and NT API defs in
comparison with Windows.
These two screen shots are from Windows 7 64bit, running taskmgr elevated:
http://img806.imageshack.us/img806/6730/procpage.png
http://img4.imageshack.us/img4/3077/perfpage.png
This is a screenshot of code written in 1997 that still functions on Windows 7
without elevation. (just to show taskmgr is getting it all wrong :P)
http://img651.imageshack.us/img651/4677/msj1997.png
These are two screen shots after removing the checks performed (note; its not
duplicating process entries)
http://img251.imageshack.us/img251/4664/tm1r.png
http://img822.imageshack.us/img822/6684/tm2s.png
commenting out the various if (status != NO_ERROR) checks allows taskmgr to
query the process list correctly, however the CPU totals and per page results
are incorrectly calculated and returned. As a side note, it should be checking
the return length and (status != NO_ERROR) is incorrect as
NtQuerySystemInformation returns NTSTATUS so it should be (status !=
STATUS_SUCCESS)
/* Get new system time */
status = NtQuerySystemInformation(SystemTimeOfDayInformation, &SysTimeInfo,
sizeof(SysTimeInfo), 0);
if (status != NO_ERROR)
return;
/* Get new CPU's idle time */
status = NtQuerySystemInformation(SystemPerformanceInformation,
&SysPerfInfo, sizeof(SysPerfInfo), NULL);
if (status != NO_ERROR)
return;
/* Get system cache information */
status = NtQuerySystemInformation(SystemFileCacheInformation,
&SysCacheInfo, sizeof(SysCacheInfo), NULL);
if (status != NO_ERROR)
return;
This demonstration application (from a 1997 Microsoft Journal article) is able
to correctly query all the various details and indicates many discrepancies
between psdk defs and the use of NT api's by taskmgr:
http://www.microsoft.com/msj/0197/hood/hood0197.aspx
Code linked from that article is public domain and licence free, there is a
link at the top of the article, for convenience it can be downloaded here:
http://download.microsoft.com/download/0/6/7/0678184e-905e-4783-9511-d4dca1f492b4/hood0197.exe
--
Configure bugmail: http://www.reactos.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the Ros-bugs
mailing list