[ros-dev] Re: [ros-svn] [ion] 16635: - Fix nasty APC delivery bug
(in case
a Kernel-Mode Special APC still returned with a Normal Routine, the Normal
Routine was called with incorrect values (Special Routines take PVOID*
arguments, while Normal Routines do not!))
Hartmut Birr
hartmut.birr at gmx.de
Tue Jul 19 22:22:08 CEST 2005
ion at svn.reactos.com wrote:
> - Fix nasty APC delivery bug (in case a Kernel-Mode Special APC still returned with a Normal Routine, the Normal Routine was called with incorrect values (Special Routines take PVOID* arguments, while Normal Routines do not!))
> - Remove APC from list before setting it to non-inserted.
> - Do proper thread termination piggybacking; terminate threads in user-mode as Hartmut correctly fixed.
>
>
>Updated files:
>trunk/reactos/ntoskrnl/ke/apc.c
>trunk/reactos/ntoskrnl/ps/kill.c
>
>
>
Hi,
I do not agree to this changes. For a non system thread, we use a kernel
mode apc first, which uses a second user mode apc. This overhead isn't
necessary. For system threads it isn't possible to use a kernel mode apc
which calls PspExitThread. A system thread must terminate it self. It is
only possible to help by marking a flag, setting an event or unwait the
thread.
- Hartmut
More information about the Ros-dev
mailing list