From 932bbb0b28653fecd471d3f4c19239524afccea0 Mon Sep 17 00:00:00 2001 From: wj32 Date: Sun, 5 Apr 2009 00:28:15 +0000 Subject: [PATCH] added highlighting for GUI threads git-svn-id: svn://svn.code.sf.net/p/processhacker/code@1009 21ef857c-d57f-4fe0-8362-d861dc6d29cd --- trunk/CHANGELOG.txt | 2 + trunk/KProcessHacker/i386/kprocesshacker.sys | Bin 16384 -> 16896 bytes trunk/KProcessHacker/kph_nt.c | 42 ++++++++++++ trunk/KProcessHacker/kph_nt.h | 14 +++- trunk/KProcessHacker/kprocesshacker.c | 22 +++++++ trunk/KProcessHacker/kprocesshacker.h | 1 + trunk/ProcessHacker/Components/ThreadList.cs | 6 +- trunk/ProcessHacker/Forms/HackerWindow.cs | 8 +-- trunk/ProcessHacker/Forms/OptionsWindow.cs | 20 +++--- trunk/ProcessHacker/KProcessHacker.cs | 13 +++- .../Properties/Settings.Designer.cs | 60 ++++++++++++++++-- .../Properties/Settings.settings | 16 ++++- .../ProcessHacker/Providers/ThreadProvider.cs | 22 +++++++ trunk/ProcessHacker/app.config | 16 ++++- 14 files changed, 215 insertions(+), 27 deletions(-) diff --git a/trunk/CHANGELOG.txt b/trunk/CHANGELOG.txt index c7685705c..509c9d854 100644 --- a/trunk/CHANGELOG.txt +++ b/trunk/CHANGELOG.txt @@ -23,6 +23,8 @@ Process Hacker * Custom module information querying; can now display the modules for protected processes * Displays service DLL paths * Thread list displays cycles instead of context switches on Windows Vista + * GUI threads are highlighted (with KProcessHacker) + * Suspended and GUI thread highlighting can be configured * FIXED: * #2642442 - "System Information label text gets clipped" * #2694437 - "Crash when sorting the process list" diff --git a/trunk/KProcessHacker/i386/kprocesshacker.sys b/trunk/KProcessHacker/i386/kprocesshacker.sys index 3f49db79ddba765d7603aa2dc1d49ebcf6cd1607..ed33b4dca74e393d4b04e592fade0203149632d2 100644 GIT binary patch delta 4214 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 M+q<@|1@;d7Ki3e#_5c6? delta 3743 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 http://www.google.com/search?q=%s - + Chartreuse - + 255, 60, 40 @@ -296,5 +296,17 @@ + + Silver + + + True + + + 255, 255, 128 + + + True + \ No newline at end of file diff --git a/trunk/ProcessHacker/Providers/ThreadProvider.cs b/trunk/ProcessHacker/Providers/ThreadProvider.cs index 8bd5fa3d4..84c40479d 100644 --- a/trunk/ProcessHacker/Providers/ThreadProvider.cs +++ b/trunk/ProcessHacker/Providers/ThreadProvider.cs @@ -46,6 +46,7 @@ namespace ProcessHacker public uint StartAddressI; public string StartAddress; public Win32.KWAIT_REASON WaitReason; + public bool IsGuiThread; public Win32.ThreadHandle ThreadQueryLimitedHandle; } @@ -170,6 +171,16 @@ namespace ProcessHacker catch { } + if (Program.KPH != null) + { + try + { + item.IsGuiThread = Program.KPH.KphGetThreadWin32Thread(item.ThreadQueryLimitedHandle) != 0; + } + catch + { } + } + if (Program.WindowsVersion != WindowsVersion.XP) { try @@ -237,6 +248,16 @@ namespace ProcessHacker catch { } + if (Program.KPH != null) + { + try + { + newitem.IsGuiThread = Program.KPH.KphGetThreadWin32Thread(newitem.ThreadQueryLimitedHandle) != 0; + } + catch + { } + } + if (Program.WindowsVersion != WindowsVersion.XP) { try @@ -266,6 +287,7 @@ namespace ProcessHacker newitem.ContextSwitchesDelta != item.ContextSwitchesDelta || newitem.Cycles != item.Cycles || newitem.CyclesDelta != item.CyclesDelta || + newitem.IsGuiThread != item.IsGuiThread || newitem.Priority != item.Priority || newitem.StartAddress != item.StartAddress || newitem.WaitReason != item.WaitReason diff --git a/trunk/ProcessHacker/app.config b/trunk/ProcessHacker/app.config index 456369319..16b22e8fd 100644 --- a/trunk/ProcessHacker/app.config +++ b/trunk/ProcessHacker/app.config @@ -91,10 +91,10 @@ http://www.google.com/search?q=%s - + Chartreuse - + 255, 60, 40 @@ -301,6 +301,18 @@ + + Silver + + + True + + + 255, 255, 128 + + + True + \ No newline at end of file