else
{
/* System Thread */
Thread->StartAddress = StartRoutine;
PspSetCrossThreadFlag(Thread, CT_SYSTEM_THREAD_BIT);
Looks good to me.
And CT_SYSTEM_THREAD_BIT is defined to 0x10 which is correct:
union
{
struct
{
ULONG Terminated:1;
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
ULONG ThreadInserted:1;
#else
ULONG DeadThread:1;
#endif
ULONG HideFromDebugger:1;
ULONG ActiveImpersonationInfo:1;
ULONG SystemThread:1;
so your patch was correct and should be re-applied.
On 12-Aug-08, at 3:22 PM, sginsberg(a)svn.reactos.org wrote:
Author: sginsberg
Date: Tue Aug 12 17:22:51 2008
New Revision: 35294
URL:
http://svn.reactos.org/svn/reactos?rev=35294&view=rev
Log:
- Temporarily revert my last change. We don't set the SystemThread
flag appropriately and it is always zero
Modified:
trunk/reactos/ntoskrnl/ps/kill.c
Modified: trunk/reactos/ntoskrnl/ps/kill.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ps/kill.c?rev=352…
=
=
=
=
=
=
=
=
======================================================================
--- trunk/reactos/ntoskrnl/ps/kill.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ps/kill.c [iso-8859-1] Tue Aug 12
17:22:51 2008
@@ -1086,7 +1086,7 @@
PETHREAD Thread = PsGetCurrentThread();
/* Make sure this is a system thread */
- if (!Thread->SystemThread) return STATUS_INVALID_PARAMETER;
+ if (Thread->SystemThread) return STATUS_INVALID_PARAMETER;
/* Terminate it for real */
return PspTerminateThreadByPointer(Thread, ExitStatus, TRUE);
Best regards,
Alex Ionescu